Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Usunięcie zduplikowanych rekordów w kilku kolumnach
brzanek
post 27.02.2020, 10:45:09
Post #1





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
trueblue
post 27.02.2020, 11:16:23
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://kawalekkodu.pl/zly-brat-blizniak-cz...likatow-w-mysql
Zrób wcześniej backup.


--------------------
Go to the top of the page
+Quote Post
brzanek
post 27.02.2020, 11:34:31
Post #3





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 27.02.2020, 11:37:47
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
nospor
post 27.02.2020, 12:41:11
Post #5





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
brzanek
post 27.02.2020, 18:38:30
Post #6





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post 27.02.2020, 22:34:26
Post #7





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomplus
post 28.02.2020, 06:32:18
Post #8





Grupa: Zarejestrowani
Postów: 1 831
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


@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

Go to the top of the page
+Quote Post
brzanek
post 29.02.2020, 14:47:58
Post #9





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post 29.02.2020, 17:45:39
Post #10





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 13:37