Lollus Opublikowano 26 Maja 2010 Udostępnij Opublikowano 26 Maja 2010 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 Więcej opcji udostępniania...
SLy Opublikowano 27 Maja 2010 Udostępnij Opublikowano 27 Maja 2010 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 27 Maja 2010 Administratorzy Udostępnij Opublikowano 27 Maja 2010 dodać atrybut Unique dla tego pola, żeby nie dało się wstawiać rekordów które dupikują to pole :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 27 Maja 2010 Udostępnij Opublikowano 27 Maja 2010 Wczytaj rekordy do tablicy. Dla każdego elementu sprawdzaj czy wartość mysql_num_rows elementu jest większa od 1, jeśli tak to usuń. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lollus Opublikowano 27 Maja 2010 Autor Udostępnij Opublikowano 27 Maja 2010 Jeszcze mam pytanko Jak usunąć rekord, jeżeli różnica czasu wynosi mniej niż 20 sekund? Taki anty-flood :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 27 Maja 2010 Udostępnij Opublikowano 27 Maja 2010 Bez js to musiałbyś zapisywać czas napisania posta, przed dodaniem nowego sprawdzać czas kiedy napisano poprzedni. Jeśli różnią sie powyżej 20 sekund(20000 milisekund) to przepuść. Jeśli nie, die. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę