如何判断一段时间内某个账号的写入次数。。如何自动锁定和解锁。
时间:2011-12-19
来源:互联网
比如我一个如下数据库,有表table1和table2
其中table1的结构如下:
table1记录了投票用户的投票时间time_sj,投票选择的那些企业vote,投票的类别。
time_sj vote class
2011-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、投票名称对应的编号uid,投票的类别class,和是否锁定状态shuo(0为没有锁定,1为锁定状态。),锁定时间ssj。
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 锁定时间
其中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分钟后自动解锁。。
其中table1的结构如下:
table1记录了投票用户的投票时间time_sj,投票选择的那些企业vote,投票的类别。
time_sj vote class
2011-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、投票名称对应的编号uid,投票的类别class,和是否锁定状态shuo(0为没有锁定,1为锁定状态。),锁定时间ssj。
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 锁定时间
其中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分钟后自动解锁。。
作者: phpcainiao 发布时间: 2011-12-19
1.
SQL code
SQL code
select count(*) from table1 where class=1 and charindex('|2|','|'+vote+'|')>0
作者: qianjin036a 发布时间: 2011-12-19
引用 1 楼 qianjin036a 的回复:
1.
SQL code
select count(*) from table1 where class=1 and charindex('|2|','|'+vote+'|')>0
1.
SQL code
select count(*) from table1 where class=1 and charindex('|2|','|'+vote+'|')>0
charindex('|2|','|'+vote+'|
这个里面的2是什么意思?
作者: phpcainiao 发布时间: 2011-12-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28