删除重复记录之一

时间:2019-10-16 00:45:10

标签: mysql mariadb

这是我的数据库表,表名是food_user。我使用的是mariadb版本10.1.38。

enter image description here

我运行以下sql查询:

INSERT INTO food_user (NAME,re_date,re_day)
SELECT 'Alex','2019-01-01' + INTERVAL seq DAY,DAYNAME('2019-01-01' + INTERVAL seq DAY)
FROM seq_0_to_364; 

两次。因此,有两个日期相同的数据,如下面的屏幕截图所示。

enter image description here

我想删除两个相同的日期之一。

我尝试此查询。

DELETE n1 from food_user n1, food_user n2 
where n1.id > n2.id
  and n1.sum=0 and n2.sum=0
  and n1.name='Alex'
  and n2.name='Alex'
  and n1.re_date=?
  and n2.re_date=?;

我不知道正确的查询。

1 个答案:

答案 0 :(得分:0)

这是删除查询的外观。

delete from food_user where id in 
(
   select x.id from (select min(id) as id from food_user t group by name, re_date having count(1) = 2) as x
)