Skocz do zawartości

Operacje na rekordach mysql


Rekomendowane odpowiedzi

Przypuścmy, że mam tabelkę telefony:

 

id nr imie

1 134 Tyfus

2 123 Romek

3 342 Atomek

4 134 Tyfus

 

Jak widać, rekordy o nr 1 i 4 mają te same wartości (nr i imie). Jak sprawdzić, czy pola mają te same wartosci w konkretnych kolumnach a jeśli tak to usunąć je? Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

SELECT DISTINCT * FROM telefony
GROUP BY nr, imie
HAVING count(nr) > 1
ORDER BY nr

Nie jestem do końca pewien jak to działa, ale testowałem dla kilku przypadków i zawsze zwracało dobre rekordy. W ten sposób dostaniesz tylko rekordy, które się powtarzają (wartość kolumn nr i imie jest taka sama). Potem pozostaje przejechać tabelę i usunąć.

DELETE FROM telefony WHERE nr = zdublowany_numer AND imie = zdublowane_imie AND id NOT IN (id_rekordu)

Prawdopodobnie wystarczy "id>id_rekordu", bo zapytanie zwróci pierwszy rekord z takimi samymi danymi, ale z NOT IN też będzie dobrze :-)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...