Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除mysql中的重复行_Mysql_Duplicate Removal_Nested Query - Fatal编程技术网

如何删除mysql中的重复行

如何删除mysql中的重复行,mysql,duplicate-removal,nested-query,Mysql,Duplicate Removal,Nested Query,查询: DELETE FROM orders WHERE sales_id IN ( SELECT sales_id FROM orders GROUP BY sales_id HAVING COUNT(*) > 1 ); 有一个错误: 错误代码:1093。不能在FROM子句中为update指定目标表“订单” 如何解决这个问题?请提供帮助。在MySQL中,您不能修改选择部分中使用的同一个表。 这种行为记录在: 您需要停止使用嵌套子查询并分两部分执行操作,或者使用简单的where子

查询:

DELETE FROM orders WHERE sales_id IN (
    SELECT sales_id FROM orders GROUP BY sales_id HAVING COUNT(*) > 1
);
有一个错误: 错误代码:1093。不能在FROM子句中为update指定目标表“订单”


如何解决这个问题?请提供帮助。

在MySQL中,您不能修改选择部分中使用的同一个表。 这种行为记录在:

您需要停止使用嵌套子查询并分两部分执行操作,或者使用简单的where子句

如果要使用子查询,可以尝试为子查询中的表指定别名,如下所示:

DELETE FROM orders WHERE sales_id IN (
    SELECT sales_id FROM (
        SELECT * FROM orders
    ) AS t1 GROUP BY sales_id HAVING COUNT(*) > 1
);

限定列名。@ergonaut:不相关。只涉及一个表,错误会准确地告诉您问题所在:无法修改在同一查询中从中选择的表。错误1241:操作数应包含1列。对我来说,它工作正常,您也可以尝试用列名替换*