我需要从表中删除不同的行

时间:2019-05-29 17:50:52

标签: mysql sql

从图片中可以看到,我要做的就是删除所有多行但只留下一个的行

https://imgur.com/4RUajPQ

enter image description here

2 个答案:

答案 0 :(得分:0)

一种非常简单但效率低下的方法是将表与自身交叉连接并删除重复的条目,如下所示:

  

从my_table t1和my_table t2中删除t1,其中t1.id> t2.id AND t1.user_id = t2.user_id AND t1.name = t2.name AND t1.time = t2.time AND t1.temperature = t2。温度AND t1.activity = t2.activity AND t1.create_time = t2.create_time

如果您确定可以将其值直接用于识别两行是否可能彼此重复的列,也许可以删除查询的where子句中的多余相等性检查。

答案 1 :(得分:-1)

您还可以在(按ID,名称,温度,活动,按ID,名称,温度,活动,创建日期desc排序)上创建Row_number()。创建Rw编号后,您可以从DELETE TABLE COMMAND

中删除其他行

我假设您只希望每行创建一个日期。