Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:znajdowanie duplikatów w wielu polach

jest to wykonalne, ale nie jestem pewien, czy jest to bardziej wydajne niż robienie tego na poziomie aplikacji:

Twój stół:

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)

wybierz, aby znaleźć duplikaty:

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)

w zasadzie łączysz trzy kolumny w jedną, a następnie szukasz duplikatów




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja logiki MySql

  2. Jak porównywać wydajność MySQL za pomocą SysBench?

  3. MySQL usuwa znaki nieliczbowe do porównania

  4. Wybierz 10 najlepszych rekordów dla każdej kategorii w MySQL

  5. tworzenie dynamicznego wstawiania php do funkcji mysql?