【发布时间】:2020-06-02 01:50:54
【问题描述】:
您好 SQL 查询专家! 我有一张名为 'mytable' 的表,它有 2 列,例如 id 和 title 。 我试图删除重复项,但只有一条记录(行)比较标题。 以下是我的选择:
DELETE FROM `myTable` AS `m1`
WHERE `m1`.`id`
NOT IN (SELECT MIN(`b`.`id`) as `recordid` FROM `myTable` AS `b` GROUP BY `b`.`title`)
错误:Error in query (1064): Syntax error near '* FROM `myTable` AS `m1` WHERE `m1`.`id` NOT IN (SELECT MIN(`b`.`id`) as `reco' at line 1
但我遇到了麻烦,并试图解决这个问题超过 2 小时。
这似乎是一个非常简单的问题。
但我无法弄清楚。所以我要求stackoverflow!
主要是,我看到了一些奇怪的东西。 我试过这样,但没有任何错误。
SELECT * FROM `myTable` AS `m1`
WHERE `m1`.`id`
NOT IN (SELECT MIN(`b`.`id`) as `recordid` FROM `myTable` AS `b` GROUP BY `b`.`title`)
当我运行这个查询时,我可以获得我想从“myTable”表中删除的记录(行)列表。
为什么我可以获取要删除的列表却遇到删除问题?
我真的需要你的帮助。 谢谢大家!
【问题讨论】:
-
这能回答你的问题吗? Select first row in each GROUP BY group?
-
@Malakiyasanjay 感谢您的帮助。看来我找到了解决方案。但是运行我的新查询将花费大量时间。因此,如果您的建议现在非常适合我的问题,我无法给出正确的答案。
标签: mysql sql duplicates sql-delete