Maison  >  Article  >  base de données  >  Implémentation MYSQL de la connexion continue et du redémarrage en un jour à partir de zéro

Implémentation MYSQL de la connexion continue et du redémarrage en un jour à partir de zéro

小云云
小云云original
2018-01-17 10:29:363197parcourir

Cet article présente principalement l'implémentation MYSQL de la fonction de connexion continue. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer.

1, créer une table de test


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

2, insérer les données de test, l'heure d'enregistrement est 5.21 Sur 6.5, je peux écrire, mais je suis paresseux quand il s'agit d'écrire des procédures stockées. L'accent devrait être mis sur le code pour obtenir les données de connexion, qui est le troisième point, haha ​​​​

<.>


insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-21 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-22 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-23 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-24 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-25 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-26 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-27 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-28 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-29 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-30 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-05-31 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-06-01 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-06-02 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-06-03 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-06-04 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;72164&#39;,&#39;字典&#39;,&#39;2017-06-05 00:00:00&#39;,&#39;1&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-21 00:00:00&#39;,&#39;0&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-22 00:00:00&#39;,&#39;0&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-23 00:00:00&#39;,&#39;0&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-24 00:00:00&#39;,&#39;0&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-25 00:00:00&#39;,&#39;0&#39;); 
insert into `testsign` (`userid`, `username`, `signtime`, `type`) values(&#39;800675&#39;,&#39;吴小双签到数据&#39;,&#39;2017-05-26 00:00:00&#39;,&#39;0&#39;);

3. Interroger les données d'enregistrement continu


SELECT * FROM testsign WHERE TYPE=0 AND 
 DATE_FORMAT(signtime,&#39;%Y%m%d&#39;)>( 
 SELECT IFNULL(MAX(DATE_FORMAT(signtime,&#39;%Y%m%d&#39;)),"20170520") FROM testsign WHERE TYPE=1 
 AND DATE_FORMAT(signtime,&#39;%Y%m%d&#39;)<=DATE_ADD(NOW(), INTERVAL -1 DAY) 
 AND DATE_FORMAT(signtime,&#39;%Y%m%d&#39;) NOT IN ( 
    SELECT DATE_FORMAT(signtime,&#39;%Y%m%d&#39;) FROM testsign WHERE TYPE=0 AND userid=800675 
    ) 
 ) 
 AND DATE_FORMAT(signtime,&#39;%Y%m%d&#39;)<=&#39;20170605&#39; 
 AND userid=800675
Données ininterrompues

Supprimez les données le 23, commencez à compter à partir du 24 et signez pour trois jours consécutifs


Avez-vous appris cela ? Dépêchez-vous et essayez-le.


Recommandations associées :

8 articles recommandés sur la connexion continue

Petit boîtier de connexion continue ThinkPHP

Comment MySQL compte-t-il et interroge-t-il les enregistrements continus et les enregistrements cumulés

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn