mysql如何找出时间段不连贯的用户ID

场景

美团外卖平台点金推广自动出价工具,不在设置的推广时段里,把价格调整到0.1元

mysql如何找出时间段不连贯的用户ID_第1张图片

 难点

如图,当时间来到13:00,就应该执行出价0.1元,而不是因为没有下个时间段所以不执行。即,要查出13:00后边还有没有衔接的时间段,没有就出价0.1元。13:30的时候就已经不能再查出来并且再次执行。

解决

第一步,先把连贯的时间段设置出价。

第二步,找到时间段不连贯的店铺出价0.1元。

mysql如何找出时间段不连贯的用户ID_第2张图片

 判断方法:当截至时间没有相匹配的起始时间,即日期不连贯。

如上图,s_id 1616 最终的截至日期是1800

初步测试

SELECT COUNT(*) AS COUNT FROM `table` WHERE  ( endTime = 1500 or startTime= 1500 )
//结果得2

SELECT COUNT(*) AS COUNT FROM `table` WHERE  ( endTime = 1800 or startTime= 1800 )
//结果得1

SELECT COUNT(*) AS COUNT FROM `table` WHERE  ( endTime = 1830 or startTime= 1830 )
//结果得0

可知,方向正确。我们只要知道结果得1的s_id

SELECT count(*) as count,s_id FROM `table` WHERE  ( endTime = 1800 or startTime= 1800 ) GROUP BY `s_id` HAVING count(s_id) = 1
//结果存在

SELECT count(*) as count,s_id FROM `table` WHERE  ( endTime = 1500 or startTime= 1500 ) GROUP BY `s_id` HAVING count(s_id) = 1
//结果不存在

SELECT count(*) as count,s_id FROM `table` WHERE  ( endTime = 1830 or startTime= 1830 ) GROUP BY `s_id` HAVING count(s_id) = 1
//结果不存在

你好,我是勤勤学长。

你可能感兴趣的:(mysql,美团外卖开放平台,mysql,数据库,database)