删除表中的嵌套重复列

时间:2016-03-30 21:49:45

标签: mysql sql database

我有一个以这种方式构建的表:

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_date
SELECT 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数据库中缓慢地提取所有数据,但有没有办法查询一次?

0 个答案:

没有答案
相关问题