mysql - 如何查找 mySQL DB 中没有重复的行?

标签 mysql sql

我有一张 table :

--id---name---col1--col2--col3...-colN--created. 
--1---myName---col1--col2--col3...-colN--created1. 
--2---myName---col1--col2--col3...-colN--created2. 
--3---myOtherName---Othercol1--Othercol2--Othercol3...-OthercolN--created3. 

idcreated 字段是唯一的。

其余行有重复项 - 完全相同的一组值 (name+col1+col2+col3+..+colN)。

但是,很少有行是完全唯一的。 如何找到它们(在我的示例中为第 3 行)?

最佳答案

您可以使用 NOT EXISTS 和相关子查询从同一个表中选择 ID 不同但值相等的行。

SELECT *
       FROM elbat t1
       WHERE NOT EXISTS (SELECT *
                                FROM elbat t2
                                WHERE t2.id <> t1.id
                                      AND t2.col1 = t1.col1
                                      AND t2.col2 = t1.col2
                                      AND t2.col3 = t1.col3
                                      ...
                                      AND t2.coln = t1.coln);

关于mysql - 如何查找 mySQL DB 中没有重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54346150/

相关文章:

php - 在 Android 聊天应用程序中实现规则的最佳方式

php - MySQL超时错误

mysql - 在一个查询中两次设置相同的随机值以在 MySql 中进行加密

sql - 如何在单个选择查询中获取平均值、中位数、模式和范围?

php - 在 mysql PDO 中更新后选择行

php - 将特殊字符保存到数据库然后使用 PHP 显示

sql - 重播SQL Server上的负载的工具

mysql - 在MYSQL中对子查询的计数进行求和

mysql - 将 .csv 导入 MySQL 时如何跳过中间行

mysql - 针对单个条件按多列分组