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 |
|
|
|
![]() |
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) |
|
|
|
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. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%)
|
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 |
|
|
|
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. |
|
|
|
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ąć.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 11:25 |