《MysqL教程MysqL实现连续签到功能断签一天从头开始(SQL语句)》要点:
本文介绍了MysqL教程MysqL实现连续签到功能断签一天从头开始(SQL语句),希望对您有用。如果有疑问,可以联系我们。
MysqL应用1,创建测试表
MysqL应用CREATE table `testsign` ( `userID` int(5) DEFAulT NulL,`username` varchar(20) DEFAulT NulL,`signtime` timestamp NOT NulL DEFAulT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`type` int(1) DEFAulT '0' COMMENT '为0表示签到数据,1表示签到日期字典数据' ) ENGINE=InnoDB DEFAulT CHARSET=utf8
MysqL应用2,插入测试数据,签到时间为5.21号到6.5号,可以写活,但是要写存储过程,我比较懒,重点应该是取签到数据的代码,就是第三点,呵呵
MysqL应用insert into `testsign` (`userID`,`username`,`signtime`,`type`) values('72164','字典','2017-05-21 00:00:00','1'); insert into `testsign` (`userID`,'2017-05-22 00:00:00','2017-05-23 00:00:00','2017-05-24 00:00:00','2017-05-25 00:00:00','2017-05-26 00:00:00','2017-05-27 00:00:00','2017-05-28 00:00:00','2017-05-29 00:00:00','2017-05-30 00:00:00','2017-05-31 00:00:00','2017-06-01 00:00:00','2017-06-02 00:00:00','2017-06-03 00:00:00','2017-06-04 00:00:00','2017-06-05 00:00:00',`type`) values('800675','吴小双签到数据','0'); insert into `testsign` (`userID`,'0');
MysqL应用3,查询连续签到数据
MysqL应用SELECT * FROM testsign WHERE TYPE=0 AND DATE_FORMAT(signtime,'%Y%m%d')>( SELECT IFNulL(MAX(DATE_FORMAT(signtime,'%Y%m%d')),"20170520") FROM testsign WHERE TYPE=1 AND DATE_FORMAT(signtime,'%Y%m%d')<=DATE_ADD(Now(),INTERVAL -1 DAY) AND DATE_FORMAT(signtime,'%Y%m%d') NOT IN ( SELECT DATE_FORMAT(signtime,'%Y%m%d') FROM testsign WHERE TYPE=0 AND userID=800675 ) ) AND DATE_FORMAT(signtime,'%Y%m%d')<='20170605' AND userID=800675
MysqL应用未断数据
MysqL应用
MysqL应用删掉23号数据,从24号开始算,连续签三天
MysqL应用
MysqL应用以上所述是小编给大家介绍的MysqL实现连续签到功能断签一天从头开始,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对内存溢出PHP网站的支持!
以上是内存溢出为你收集整理的MYSQL教程MYSQL实现连续签到功能断签一天从头开始(sql语句)全部内容,希望文章能够帮你解决MYSQL教程MYSQL实现连续签到功能断签一天从头开始(sql语句)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)