Heim > Datenbank > MySQL-Tutorial > MYSQL-Implementierung der kontinuierlichen Anmeldung und eines eintägigen Neustarts von Grund auf

MYSQL-Implementierung der kontinuierlichen Anmeldung und eines eintägigen Neustarts von Grund auf

小云云
Freigeben: 2018-01-17 10:29:36
Original
3213 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die MYSQL-Implementierung der kontinuierlichen Anmeldefunktion vor. Er ist sehr gut und hat Referenzwert. Ich hoffe, er kann jedem helfen.

1, Testtabelle erstellen


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
Nach dem Login kopieren

2, Testdaten einfügen, Check-in-Zeit ist 5.21 Auf 6.5 kann ich schreiben, aber ich bin faul, wenn es um das Schreiben gespeicherter Prozeduren geht. Der Fokus sollte auf dem Code zum Abrufen der Anmeldedaten liegen, was der dritte Punkt ist, haha ​​​​


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

3. Kontinuierliche Check-in-Daten abfragen


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,&#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
Nach dem Login kopieren

Ununterbrochene Daten

Löschen Sie die Daten am 23., beginnen Sie mit der Zählung ab dem 24. und unterschreiben Sie an drei aufeinanderfolgenden Tagen

Hast du das gelernt? Beeilen Sie sich und probieren Sie es aus.

Verwandte Empfehlungen:

8 empfohlene Artikel zur kontinuierlichen Anmeldung

ThinkPHP Continuous Sign-in Small Case

Wie zählt und fragt MySQL kontinuierliche Check-Ins und kumulative Check-Ins ab?

Das obige ist der detaillierte Inhalt vonMYSQL-Implementierung der kontinuierlichen Anmeldung und eines eintägigen Neustarts von Grund auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage