php - MySQL,删除重复行(必须由 2 列唯一)

标签 php mysql

我有这个:

1899, 184, 531 *
1900, 184, 531 *
1901, 113, 531
1902, 184, 436

我想得到

1899, 184, 531
1901, 113, 531
1902, 184, 436

没有临时表等。如何?

最佳答案

SELECT MIN(Col1), Col2, Col3
FROM yourTable
GROUP BY Col2, Col3

这假设您选择了 1899 记录而不是 1900 记录,因为前者是两者中较小的一个。

如果您想从表中删除重复记录,因为您已将它们定义为重复项,那么您可以使用以下查询:

DELETE t1.*
FROM yourTable t1
LEFT JOIN
(
    SELECT MIN(Col1) AS Col1, Col2, Col3
    FROM yourTable
    GROUP BY Col2, Col3
) t2
    ON t1.Col1 = t2.Col1 AND t1.Col2 = t2.Col2 AND t1.Col3 = t2.Col3
WHERE t2.Col1 IS NULL

关于php - MySQL,删除重复行(必须由 2 列唯一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369117/

相关文章:

php - 在 Codeigniter 中编写模型代码的最佳方式是什么

php - Ubuntu PHP - 无法启动

PHP:异常和可捕获的 fatal error 有什么区别?

php - 使用多个条件从 SQL 中的表中删除多行

PHP、PDO 和 MySQL - 返回查询顺序不正确

php - 使用php从mysql数据库中的特定用户获取信息

javascript - 在同一 php 页面中显示内容-单击按钮

mysql - 当查询字符串返回空值时,我们如何添加动态值?

MySql 不带全文的复数搜索

php - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES)