Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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_Sql - Fatal编程技术网

如何删除MySQL中对一列具有相同值的行

如何删除MySQL中对一列具有相同值的行,mysql,sql,Mysql,Sql,我有这样的想法: col1 col2 col3 A B C A B C 我只想保留其中一行,删除另一行。要实现什么查询?您可以尝试 delete from table where col1 = 'A' and col2 = 'B' and col3 = 'C' limit 1; 您可以在limit子句中使用记录计数等来删除更多记录。如果希望删除两个重复的记录,请尝试以下操作: DELETE m.* FROM mytable m INNER JOIN (SELE

我有这样的想法:

col1 col2 col3
A      B   C
A      B   C
我只想保留其中一行,删除另一行。要实现什么查询?

您可以尝试

delete from table where col1 = 'A' and col2 = 'B' and col3 = 'C' limit 1;

您可以在limit子句中使用记录计数等来删除更多记录。

如果希望删除两个重复的记录,请尝试以下操作:

DELETE m.*
FROM mytable m
INNER JOIN
  (SELECT col1,
    col2,
    col3,
    COUNT(*)
  FROM mytable
  GROUP BY col1,
    col2,
    col3
  HAVING COUNT(*)>1
  ) t
ON m.col1 =t.col1
AND m.col2=t.col2
AND m.col3=t.col3

编辑

由于您已编辑了问题,并希望保留两个重复行中的一行,您可以通过以下行轻松实现这一点:

  ALTER IGNORE TABLE mytable ADD UNIQUE INDEX idx_yourindexname (col1, col2, col3);

这将删除所有重复的行,以便只保留唯一的行。必须使用IGNORE关键字,因为表中已有不符合索引的数据。无论如何,这将不允许将来重复插入。

easy-
DELETE TOP(1)从表中
@Uriel_SVK,他想删除除第一行以外的所有行。这些行上是否有唯一的键?如果有主键@Taemyr,这将非常容易。不,他想
只保留其中一行,删除另一行
,所以我的答案完全符合他的要求。