Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Delete podwójnych rekordów
kielich
post 25.10.2009, 11:32:24
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam,
Czy jest mozliwe poprzez zapytanie usunac powtarzajace sie rekordy np.
jesli w bazie mam 3 identyczne rekordy różnia sie tylko ID chce usunac 2 zeby został 1 jak moge złożyć takie zapytanie questionmark.gif

OK przeciez mamy limit smile.gif juz jest OK

No tak ale jesli w bazie bedzie jeden taki rekord to go usunie biggrin.gif:D a tak niemoze byc ;/


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
Fifi209
post 25.10.2009, 11:45:38
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


count() ? smile.gif

Ten post edytował fifi209 25.10.2009, 11:45:46


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
kielich
post 25.10.2009, 11:57:16
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


No tak to mi zliczy liczbe wierszy ale jak mam usunac np 2 jest bede miał 3 takie same questionmark.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
Fifi209
post 25.10.2009, 12:33:49
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


DISTINCT

Ten post edytował fifi209 25.10.2009, 12:40:53


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
kielich
post 25.10.2009, 12:42:58
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


próbowałem tego co mi napsisałem przed edycja smile.gif i nie działa


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
skowron-line
post 25.10.2009, 12:48:19
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


having count() >1


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kielich
post 25.10.2009, 13:10:34
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


szczerze mówiąc poczytałem o klauzuli having no i DISTINCT i dalej nie wiem jak sklepac zapytanie które usunie mi moje duplikaty w bazie np. o takie samej nazwie ;/


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
thek
post 25.10.2009, 14:08:42
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Napisze słownie:
- Znajdź wszystkie rekordy w bazie, gdzie kolumna określona ma wielokrotnie tę samą wartość (czyli ma duble),
- Wybierz te rekordy grupami, ale wyrzuć z każdej grupki jeden (ten zostanie w bazie),
- pozostałe usuń.

Podpowiem, ze przyda się count, group_concat i parę innych funkcji.
Najbardziej zewnętrzny będzie DELETE, a id rekordów do usunięcia sobie ustaw jako WHERE id IN (tutaj id rekordów do usunięcia).
To jak te identyfikatory wyciągnąć zostawiam Tobie.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kielich
post 25.10.2009, 17:59:16
Post #9





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


wymąciłem cos takiego
  1. DELETE FROM zamowienia USING zamowienia, zamowienia AS vtable WHERE (zamowienia.id > vtable.id) AND (zamowienia.nazwa_naprod = vtable.nazwa_naprod)

i mam np 4 zamowienia w którym :
id jest inne (logiczne)
id_produktu :63,63,64,64 (duplikaty)
i nazwa_naprodukcie :xxx,aaa,xxx,aaa ( do kazdego produktu)
czyli 2 produkty maja (id_produktu 63 i xxx,aaa ) nastepne (64 i tez xxx,aaa)
i w.w zapytanie usuwa mi zamowienia 64 (xxx,aaa) a powinno usunąć jedno (63 xxx,aaa ) i jedno 64(xxx,aaa) jak mam to rozwiazac mecze sie juz od rana ;/

niech ktos napisze jak moge to zrobic ;/

Znajdzie się ktoś kto mi chetnie pomoze w rowikłaniu tego problemu questionmark.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
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: 15.07.2025 - 12:03