Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Usuwanie zdublowanych wpisow
Forum PHP.pl > Forum > Bazy danych
Manwe89
Mam tabele w bazie danch z polami: id, user_id, typ, use_id, nazwa, data, koszt. No i chciał, nie chciał mam masę wspiów które różnią się wartością pola data. Jak skontruowac zapytanie ktore usunie wpisy, które mają to samo: id, user_id, typ, use_id, nazwa, koszt?
erix
SELECT ... DISTINCT ... INTO do tabeli tymczasowej, TRUNCATE na pierwotną i kopiujesz dane z powrotem. Jeśli nie chcesz robić tabel tymczasowych, robisz podzapytanie w klauzuli WHERE.
Manwe89
caly czas zastanawiam sie nad warunkiem where smile.gif
erix
To też musiałoby być na podzapytanie; z tym, że na GROUP BY unikalna_kolumna HAVING COUNT(unikalna_kolumna)>1 i będziesz miał identyfikatory zduplikowanych rekordów.
dr_bonzo
A

  1. SELECT id, user_id, typ, use_id, nazwa, koszt, DATA FROM tabelka HAVING DATA = MAX( DATA )
  2. GROUP BY user_id, typ, use_id, nazwa, koszt

- chyba przejdzie


i jakim cudem ID ci sie powtarza?questionmark.gif
Manwe89
sorki smile.gif id mi sie nie powtarza. Jest kluczem smile.gif
dr_bonzo
No i popraw sobie dodawanie, edycje danych - skoro tyle ci sie rekordow powtarza.
Manwe89
w tym przypadku duzo lepszym rozwiazaniem jest czyszczenie co jakis czas logow zdublowanych niz wprowadzanie dodatkowych warunkow podczas wykonywania zapytania, poniewaz proces weryfikacyjny, ktroy udostepnia zawartosc i tak jest juz dosyc rozbudowany. ale chyba jednak nie pozostanie mi nic innego jak dodatkowe rozbudowanie pierwszej czesci smile.gif dzieki za pomoc
guitarnet.pl
tymczasowa tabela bez powtarzajacych sie rekordow
CREATE TABLE products_categories_temp AS SELECT * FROM products_categories GROUP BY powtarzajacesiepole

TRUNCATE products_categories

INSERT INTO products_categories SELECT * FROM products_categories_temp
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.