我有一个以这种方式构建的表:
id, event_id, event_date
1, 12345, 2016-02-03
2, 12345, 2016-02-03
3, 12345, 2016-02-06
4, 12345, 2016-02-06
5, 12345, 2016-02-06
6, 12342, 2016-02-03
7, 12342, 2016-02-03
8, 12342, 2016-02-03
请注意,id是唯一的,但不是event_id和event_date(与声明的副本完全不同)。
有没有办法缩短这个SQL代码:
第一步:获取活动ID
SELECT DISTINCT event_id FROM events
第二步:使用ID
获取event_dateSELECT DISTINCT event_date
FROM events
WHERE event_id='<event_id>'
第三步:获取event_id,event_date和event_count
SELECT id, event_id, event_date, COUNT(*) as event_count
FROM events
WHERE event_id ='<event_id>'
AND event_date='<event_date>'
Forth Step:如果event_id和event_date相同,则删除记录。
DELETE FROM events
WHERE event_id ='<event_id>'
AND event_date='<event_date>'
LIMIT <event_count-1>;
我把所有这些都放在函数中,由于多个查询和大量数据,它从MySQL数据库中缓慢地提取所有数据,但有没有办法查询一次?