Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:намиране на дубликати в множество полета

това е изпълнимо, но не съм сигурен дали е по-ефективно, отколкото просто да го правите на ниво приложение:

вашата маса:

mysql> select * from test;
+----+--------+--------+--------+
| id | field1 | field2 | field3 |
+----+--------+--------+--------+
|  1 | A      | B      | C      |
|  2 | D      | E      | F      |
|  3 | A      | H      | I      |
|  4 | J      | K      | A      |
|  5 | M      | D      | O      |
+----+--------+--------+--------+
5 rows in set (0.00 sec)

изберете, за да намерите измамници:

mysql> select count(value) as dupe_count,value from (select field1 as value from test union all select field2 from test union all select field3 from test) as tbl group by value having count(value) > 1 order by 1 desc;
+------------+-------+
| dupe_count | value |
+------------+-------+
|          3 | A     |
|          2 | D     |
+------------+-------+
2 rows in set (0.00 sec)

по принцип обединявате трите колони в една и след това търсите измамници




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да вградите видео в laravel код

  2. Връщане на ResultSet

  3. MySQL - конкретни колони при присъединяване?

  4. Как мога да разбера стандартния набор от знаци/колекция в моя MySQL

  5. php7.4 mysqli изтече