Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usunięcie tylko jednego elementu o tym samym ID
Forum PHP.pl > Forum > Bazy danych > MySQL
Ravik
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
nospor
....limit 1
ps: dziwna nazwa ID jak na pole, gdzie ID możę się powtarzać wink.gif
Ravik
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.
Niktoś
Może zainteresuj się poleceniem Dinstinct. i utwórz polecenie usunięcia z podzapytaniem select używając distinct.
by_ikar
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.
Ravik
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ąć.
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.