Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak usunąć z duplikowane rekordy ?
netvalue
post 22.08.2014, 10:55:16
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


Hej

mam w bazie tabelke

id_category | id_product

1 | 2
2 | 3
1 | 2
4 | 5
7 | 9
2 | 3

jak usunac zapytaniem zduplikowane rekordy (pogrubione wyzjej) ?

Ten post edytował netvalue 22.08.2014, 10:55:35
Go to the top of the page
+Quote Post
mar1aczi
post 22.08.2014, 11:02:03
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Chcesz je usunąć całkowicie, czy ma pozostać tylko jeden wpis?


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
netvalue
post 22.08.2014, 11:18:49
Post #3





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


tylko jeden zeby byl unikatowy
Go to the top of the page
+Quote Post
Pyton_000
post 22.08.2014, 11:32:19
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Po pierwsze ustaw klucz na tych 2 kolumnach Unique, to zapobiegnie powstawaniu dubli

Co do kodu:
  1. DELETE c1 FROM tablee c1, tablee c2 WHERE c1.article_id = c2.article_id AND c1.category_id = c2.category_id


Tylko przetestuj to wink.gif Pisane z palca

Ten post edytował Pyton_000 22.08.2014, 11:32:41
Go to the top of the page
+Quote Post
netvalue
post 22.08.2014, 12:08:00
Post #5





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


wykasowalo wszystko z tabeli sad.gif
Go to the top of the page
+Quote Post
Turson
post 22.08.2014, 12:12:02
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


http://stackoverflow.com/questions/3311903...e-rows-in-mysql
http://stackoverflow.com/questions/1404635...out-temp-tables
2 sekundy szukania
Go to the top of the page
+Quote Post
netvalue
post 22.08.2014, 12:15:26
Post #7





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


Cytat(Turson @ 22.08.2014, 13:12:02 ) *


taak. tez to widzialem przed pisaniem tego posta ale korzystajac z ich porad dodania INDEXU w obu przypadkach dostaje blad

Duplicate entry '1-2' for key 'id_category'

natomiast uzycie :

  1. DELETE FROM member
  2. WHERE id IN (SELECT *
  3. FROM (SELECT id FROM member
  4. GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
  5. ) AS A
  6. );



dziala ale nie zostawia jednego oryginalu

Dodam ze moja tabela nie ma indexow

Ten post edytował netvalue 22.08.2014, 12:19:08
Go to the top of the page
+Quote Post
Turson
post 22.08.2014, 12:21:56
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Przenieś sobie wszystko do nowej tabeli, podczas przenoszenia sprawdź czy taki rekord już nie istnieje. Usuń starą tabelę, a nowej zmień nazwę na starej
Go to the top of the page
+Quote Post
mar1aczi
post 22.08.2014, 12:44:07
Post #9





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Tak jak podpowiada Turson, z tym że nie będziesz musiał sprawdzać czy rekord insteniej smile.gif
Utwórz nową tabele o takiej samej strukturze. Następnie załóż unikalny klucz (też zostało to wspomniane).
Użyj
  1. INSERT IGNORE / SELECT * FROM
ze starej tabeli do nowej.
INSERT IGNORE "wykona" robotę sprawdzenia zduplikowanych wierszy i nie wstawi ich do nowej tabeli.

Ten post edytował mar1aczi 22.08.2014, 12:44:38


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
netvalue
post 22.08.2014, 12:59:35
Post #10





Grupa: Zarejestrowani
Postów: 199
Pomógł: 2
Dołączył: 9.06.2008

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


bajki smile.gif dzieki chlopaki
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: 24.06.2025 - 04:20