Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Usunięcie zduplikowanych rekordów w kilku kolumnach
Forum PHP.pl > Forum > Przedszkole
brzanek
Witam mam problem z usunięciem zduplikowanych rekordów.
Dane powtarzają się w kilku kolumnach.
Tak to wygląda w bazie


Robię to na tej zasadzie
  1. DELETE
  2. FROM
  3. `opad_miesieczny_wojewodztwo_new`
  4. WHERE
  5. `id` IN(
  6. SELECT
  7. *
  8. FROM
  9. (
  10. SELECT
  11. MIN(`id`)
  12. FROM
  13. `opad_miesieczny_wojewodztwo_new`
  14. GROUP BY
  15. `rok`,
  16. `miesiac`
  17. HAVING
  18. COUNT(`id`) > 1
  19. ) temp
  20. )


Podobnie jak tu


Dlaczego to zapytanie nie usuwa tych duplikatów?
trueblue
https://kawalekkodu.pl/zly-brat-blizniak-cz...likatow-w-mysql
Zrób wcześniej backup.
brzanek
Zastosowałem coś takiego
  1. DELETE FROM `opad_miesieczny_wojewodztwo_new` AS 't1', `opad_miesieczny_wojewodztwo_new` AS 't2'
  2. WHERE 't1'.`id`>'t2'.`id` AND 't1'.`rok`='t2'.`rok` AND 't1'.`miesiac`='t2'.`miesiac` AND `miasto` = 'CHOSZCZNO'

Pojawił się błąd
MySQL zwrócił komunikat: Dokumentacja
#1064 - Something is wrong in your syntax obok 'AS 't1', `opad_miesieczny_wojewodztwo_new` AS 't2'
WHERE 't1'.`id`>'t2'.`id` AN' w linii 1
trueblue
Wyraźnie jest napisane gdzie jest błąd.
Czy nazwy aliasów obejmuje się cudzyłoswami?

Niedługo będziesz monitorował swoim skryptem pogodę w kosmosie, a uparcie nie chcesz nauczyć się podstaw.
nospor
Cytat
Niedługo będziesz monitorował swoim skryptem pogodę w kosmosie, a uparcie nie chcesz nauczyć się podstaw.
Ah, jakby tylko forum umozliwilo lajkowac posty wink.gif
brzanek
Cytat(nospor @ 27.02.2020, 12:41:11 ) *
Ah, jakby tylko forum umozliwilo lajkowac posty wink.gif

Ah jakby każdy odpowiadał na temat a nie nabijał sobie liczbę postów to by było fajnie wink.gif
nospor
Ah, jakby kazdy po tylu latach na forum ogarnial juz podstawy... tongue.gif

Jesli zas przytyk o postach byl do mnie to nie wiem o co chodzi. trueblue podal wszystko nie zostawiajac dla mnie juz nic smile.gif
Tomplus
@Brzanek
Nie bądź zły. Takie błędy zdarzają się nawet najlepszym, tylko najlepsi nie pytają się na forum gdzie jest błąd, a czytają to co im wyrzuca parser w logach. Więc dołącz do najlepszych smile.gif

brzanek
Zrobiłem to tak
  1. include('bd.php');
  2. $result = $mysqli->query("
  3. DELETE FROM opad_miesieczny_wojewodztwo_new AS t1, opad_miesieczny_wojewodztwo_new AS t2
  4. WHERE t1.id>t2.id AND t1.rok=t2.rok AND t1.miesiac=t2.miesiac AND miasto = CHOSZCZNO AND rok = 2018
  5. ");

Niestety powtarzane rekordy z tego roku nadal są w bazie i nic nie wywaliło.
nospor
Bo twoje zapytanie generuje blad bazy danych. No juz naprawde moglbys takie rzeczy jak sprawdzanie czy zapytanie sie powiodlo i jak sie nie powiodlo to wyswietlac jaki konkretnie blad sie wygenerowal, ogarniac sam, a nie ze my ci mamy poprawiac kazdy banalny blad w zapytaniu jaki robisz
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.