Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Duplikaty w bazie
Forum PHP.pl > Forum > Przedszkole
new_user
Mam w bazie kolumne symbol a niej dane na wzór
00001KB
00003KA
00005KR
00001KB

pytanie jest następujące jak wyłapać duplikaty w bazie. czyli wypluć dane które się powielają?
Malinaa
Tray it:

$sql = "SELECT pole, count(*) AS duplikat FROM table GROUP BY pole HAVING duplikat >1"
new_user
Dzięki. Właśnie o takie coś mi chodziło.
Ja eksperymentowałem z czymś takim.
  1. ALTER IGNORE TABLE tabela ADD UNIQUE INDEX(`pole`);
  2. ALTER TABLE `tabel` DROP INDEX `pole`;


lukaskolista
  1. SELECT t1.pole FROM tabla AS t1, tabela AS t2 WHERE t2.id > t1.id AND t1.sprawdzane_pole = t2.sprawdzane_pole


wyszuka caly "nadmiar" rekordow, jezeli zamiast SELECT uzyjesz DELETE z kazdego duplikatu (wedlug okreslonych przez Ciebie pol) zostanie tylko 1 rekord
sn1p3r
Załóżmy, że masz:

  1.  
  2. mysql> SELECT dane FROM testtest;
  3. +-------+
  4. | dane |
  5. +-------+
  6. | test1 |
  7. | test2 |
  8. | test1 |
  9. | test2 |
  10. | test5 |
  11. | test3 |
  12. +-------+
  13. 6 rows IN SET (0.00 sec)




i teraz
  1.  
  2. mysql> SELECT dane, count(dane) AS liczba FROM testtest GROUP BY dane HAVING liczba>1;
  3. +-------+--------+
  4. | dane | liczba |
  5. +-------+--------+
  6. | test1 | 2 |
  7. | test2 | 2 |
  8. +-------+--------+
  9. 2 rows IN SET (0.00 sec)

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.