Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usunięcie tylko jednego elementu o tym samym ID
Ravik
post
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


Witam,

Mam być może trywialne pytanie. Albowiem: Jak usunąć z bazy danych tylko jeden rekord o danym ID jeżeli jest ich więcej i mają to samo ID, usunięcie ma się odbyć tylko na podstawie zadanego ID.

Będę wdzięczny za wskazówki.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




....limit 1
ps: dziwna nazwa ID jak na pole, gdzie ID możę się powtarzać (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Ravik
post
Post #3





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


Pole, nazywa się inaczej, tylko po prostu napisałem tak dla przykładu. Jednak źle się wyraziłem.

Chodzi o to, że chcę usunąć tylko jeden rekord z całej tabeli jeżeli liczba rekordów które posiadają to samo ID jest większa niż 1. Warunek WHERE id=324 nie spełni mi tej roli, bo chodzi mi o to, żeby usunąć rekordy które posiadają to samo ID i jest ich więcej niż jedno.
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Może zainteresuj się poleceniem Dinstinct. i utwórz polecenie usunięcia z podzapytaniem select używając distinct.

Ten post edytował Niktoś 15.12.2011, 17:23:56
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Jeżeli takie rekordy, mają identyczne dane, czyli prócz tego ID masz coś tam jeszcze, i w każdym przypadku wygląda to identycznie, to szczerze mówiąc kiepsko przechowujesz dane, raz że nie masz jak się odwołać do konkretnych danych (select), dwa nie masz nawet jak ich zaktualizować (update), to trzy, nie masz nawet jak ich skasować (delete).

Nie mniej, podejrzewam że jednak tak nie jest, i to ID o którym piszesz, to jest ID powiedzmy jakiejś kategorii, czy czegoś w tym rodzaju. A twój rekord, prócz tego ID, posiada pewnie inne pola, do których możesz w warunku dodatkowo się odnieść:

Kod
DELETE FROM `tabela` WHERE `cat_id` = 12 AND `id` = 1245;


Coś w tym rodzaju. Generalnie wypadało by mieć w bazie, chociaż jedną kolumnę, która posiada unikalny identyfikator (liczbowy, alfabetyczny, lub mieszany), dzięki czemu będziesz mógł się odwołać później do konkretnego rekordu. Jeżeli takiej kolumny nie posiadasz, spróbuj z tymi innymi kolumnami które masz dodatkowo w tej tabeli. Jeżeli nie masz takich, cóż, pozostaje ci zabawa z offset/limit, ale równie dobrze możesz wejść poprzez phpmyadmin i skasować taki rekord ręcznie.
Go to the top of the page
+Quote Post
Ravik
post
Post #6





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


Dane są przechowywane tak jak trzeba, poprawiam to po po przednim programiście i w wyniku włamania na dane ID zostało pododawanych po kilka rekordów, które wyglądają tak samo. Jednak dalej nie mam pojęcia jak mam to usunąć.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 11:25