比如我一个如下数据库,有表table1和table2其中table1的结构如下:
table1记录了投票用户的投票时间time_sj,投票选择的那些企业vote,投票的类别。
time_sj       vote       class2011-12-08 17:01:00 1|2|4      1  
2011-12-08 17:02:00 2|4        2  
2011-12-08 17:11:00 3|4|5      1  
2011-12-08 17:11:00 3         1   
2011-12-08 17:11:00 2|3|4|5      2   
2011-12-08 17:14:00 1|5    1 
2011-12-08 17:17:00 2|3    1   
2011-12-08 17:19:00 1|4    1 
  其中class代表不同的用户。vote里面的 1|2|4 表示用户选择了这几个投票选项。
难点,如何判断class=1,且投票选项编号为2的单位时间的投票次数。
因为每个投票企业编号用|隔开的,用素组如何识别。并且这个这个是活动的,有可能是2|3|4|5,有可能是1|2, 有可能是1,但是最多不超过4个这个是自定义的
table2
table2记录了用户名称qy_gr_name、投票的类别class,和是否锁定状态shuo(0为没有锁定,1为锁定状态。),锁定时间ssj。
qy_gr_name     class shuo ssj   
qy1    1    0    锁定时间
qy2    1    0    锁定时间
qy3    1    0    锁定时间
qy4    1    0    锁定时间
qy5    1    0    锁定时间
gr1    2    0    锁定时间
gr2    2    0    锁定时间
gr3    2    0    锁定时间
gr4    2    0    锁定时间
gr5    2    0    锁定时间
gr6    2    0    锁定时间其中class代表不同的投票,比如我现在运行了两个投票程序,一个是评选企业的,一个是评选个人的,class=1就代表是评选企业,class=2就是评选个人的。比如第一条记录,就是说某网友在2011-12-08 17:01:00时间选择了1|2|4 同时class=1,即为企业评选里面的编号为1|2|4 的企业投票。。如何判断出在5分钟内,某个用户投票了多少次。比如判断class=2的个人投票在5分钟内投票了多少次,怎么写sql?如果在5分钟内的投票超过30次,则把shuo这个字段对应的0变成1。
然后在45分钟内,自动把变成1的转变成0;接着,如果在五分钟内投票超过了30次,则把0转换成1.如此自动循环下去。这么做的目的监视刷票的,如果他五分钟刷票三十次,就自动锁定我就是想实现的目的,一个用户如果在5分钟内登陆了3次,则吧这个账号锁定45分钟。45分钟后自动解锁。。

解决方案 »

  1.   

    投票Table1應該是一個時間範圍吧?只1個時間,怎樣判斷是否在有效時間內投票
      

  2.   


    日誌表在那里?
    如果是Table1,那少了一個qy_gr_name需要通過日誌表計算,一段時間內的投票次數
      

  3.   


    我table1表里面记录了qy_gr_name的编号? 在vote里面
      

  4.   

    我的table2少了一个字段原来的。
    table2
    table2记录了用户名称qy_gr_name、投票的类别class,和是否锁定状态shuo(0为没有锁定,1为锁定状态。),锁定时间ssj。
    qy_gr_name class shuo ssj   
    qy1 1 0 锁定时间
    qy2 1 0 锁定时间
    qy3 1 0 锁定时间
    qy4 1 0 锁定时间
    qy5 1 0 锁定时间
    gr1 2 0 锁定时间
    gr2 2 0 锁定时间
    gr3 2 0 锁定时间
    gr4 2 0 锁定时间
    gr5 2 0 锁定时间
    gr6 2 0 锁定时间
    应该差一个uid字段。
    uid字段就和table1里面的vote字段里面的数字对应。。qy_gr_name uid class shuo ssj   
    qy1 1 1 0 锁定时间
    qy2 2 1 0 锁定时间
    qy3 3 1 0 锁定时间
    qy4 4 1 0 锁定时间
    qy5 5 1 0 锁定时间
    gr1 1 2 0 锁定时间
    gr2 2 2 0 锁定时间
    gr3 3 2 0 锁定时间
    gr4 4 2 0 锁定时间
    gr5 5 2 0 锁定时间
    gr6 6  2 0 锁定时间
      

  5.   

    select count(*) from table1 where class=1 and charindex('|2|','|'+vote+'|')>0