回答

收藏

MySQL在正常表格中连续N天计数

技术问答 技术问答 207 人阅读 | 0 人回复 | 2023-09-12

我想在给定日期之前和之后连续计算特定用户N天会。
7 j7 p  \# r, }; _4 X( M/ J例如:计算ID2013年1月16日连续开会天数为1。
( N( C  h3 z5 k( C. ^. T我在这里和这里都找到了一些好的答案,但表格的格式并不像上面的例子那么正常,所以我不知道如何为我的场合实现它。
( L$ |- E/ W: J# Z; h& ^示例结构如下:, S( A3 N% }, S3 C. S  g+ C0 O9 g4 w7 m
CREATE TABLE IF NOT EXISTS `meetings` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `time` datetime NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `meetings_users` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(10) unsigned NOT NULL, `meeting_id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `meeting_id` (`meeting_id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `users` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,    PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8;---- Constraints for table `meetings_users`--ALTER TABLE `meetings_users`  ADD CONSTRAINT `meetings_users_ibfk_2` FOREIGN KEY (`meeting_id`) REFERENCES `meetings` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `meetings_users_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;样品插入& }$ ^3 g3 J- b2 {
INSERT INTO  `users` ( `id` ) VALUES (1)INSERT INTO `meetings` ( `id`,`time` ) VALUES (1,'2013-01-(2)-01-(3)-01-16 10:00:00')INSERT INTO `meetings_users` ( `id`,`meeting_id`,`user_id` ) VALUES (1,1,1)所需输出:
* N8 Y% `" v/ G8 r! P( G* --------- ----------------- | user_id | consecutive_days | --------- ------------------ |       1 |  3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | --------- ------------------                 " L% S5 R& B3 O" n) S( i
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则