![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam problem, chcę skasować nadmair wpisów do bazy danych.
Na początku wypisuję wszystkie rekordy za pomocą pętli. Zliczam je. Po czym chcę skasować nadmiar, wykonuje polecenie
* - Limit: 1 wziął się z LiczbaRekordów - MaksymalnaLiczbaRekordów, wcześniej założyłem, że ta liczba jest dodatnia. Zapytanie jest poprawne, do tego momentu:
Nie mogę dodać ważnego wpisu:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
No bo ORDER BY jest tylko do zapytania SELECT, bo przecież sortowanie przydaje się głównie przy wyświetlaniu wyników, a nie przy kasowaniu ich. Jeśli chcesz wykasować dane, o konkretnej dacie, to możesz najpierw wybrać je SELECTEM, a potem wykasować.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(zbig13 @ 2005-09-20 17:53:17) No bo ORDER BY jest tylko do zapytania SELECT tego pewien nie jestem, bo kiedyś już używałem ORDERA przy kasowaniu, z tego co pamiętam. To jest bez sensu, 2 dodatkowe pytania zamiast jednego, musi się dac za pomocą jednego pytania. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Znaczy wywala jakiś błąd? Bo u mnie to zapytanie działa dobrze (testowane na phpmyadminie, z tym że sortowałem po danych liczbowych a nie po dacie - ale to nie ma większego znaczenia)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Problem polega na tym, że jak dam
jakiś warunek, wtedy się sypie i w phpmyadmin i w skrypcie. :\ moje pytanie:
wywala błąd:
który jak zwykle nie wiele mówi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował Spirit86 20.09.2005, 19:00:50 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
bo ORDER BY dajemy po warunkach
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
próbowałem i tak i tak. Przez przypadek wkleiłem nie ten kod, co trzeba, normalnie mam WARUNEK, ORDER
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Spirit86 @ 2005-09-20 19:37:06) próbowałem i tak i tak. Przez przypadek wkleiłem nie ten kod, co trzeba, normalnie mam WARUNEK, ORDER że się upewnie, kolejnosc masz WHERE, ORDER, LIMIT ? tak czy owak, order oczywiscie mozna stosowac w delete |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
1. Nie to forum. Przenoszę na: Bazy danych.
2. Cytat(Spirit86 @ 2005-09-20 18:02:46) Cytat(zbig13 @ 2005-09-20 17:53:17) No bo ORDER BY jest tylko do zapytania SELECT tego pewien nie jestem, (...) Za to ja jestem pewien. ORDER BY można używać w konstrukcji DELETE. Jeżeli ktoś ma wątpliwości: DELETE Syntax 3. ORDER BY można stosować w konstrukcji DELETE dopiero od wersji 4.0.2 MySQL'a (bo podejrzewam że to o nim mowa). Może masz starszego. Poza tym zapytanie które napisałeś w ostatnim poście powinno działać. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak chodzi o MySQL.
Masz rację, mam starą wersję: 3.23.58 :\ Ech nie da się tego wykonać, aby było kompatibilne ze starszymiy wersjami bazy danych? To bardzo ważne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Może innaczej zmodyfikowac zapytanie / mam ilośc rekordów, ilość dozwolonych rekordów. |
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Spirit86 @ 2005-09-20 22:42:12) Ech nie da się tego wykonać, aby było kompatibilne ze starszymiy wersjami bazy danych? Niestety, nie da się. Alternatywą byłoby podzapytanie, ale Twoja wersja MySQL'a też ich nie obsłuży. Jedyne wyjście w tej sytuacji podał zbig13. Ale zamiast tego polecałbym Ci zmianę MySQL'a na 4.1 bo pomijając że sam MySQL jest niedorozwiniętą bazą danych, to wresja 3.23.58 to już zamierzchłe czasy epoki lodowcowej. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mike_mech @ 2005-09-21 07:58:14) wresja 3.23.58 to już zamierzchłe czasy epoki lodowcowej. Taka wersja jest dołączona do najnowszego Krasnala (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Ściągnełem najnowszą wersję, wgrałem ja i wszystko gra. Zastanawiam sie tylko czy nie zrobić jakiegoś dodatkowego polecenia, bo nie na wszystkich serwerach jest MySQL 4+. Standartem jest, jeszcze, wersja 3.*.*, czy mi się wydaje? Potrzebuję tej informacji ze względu na to, że piszę to do CMS'a, który stram się pisać zgodny ze starszymi wersjami php oraz MySQL. |
|
|
![]()
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Na serwerach jest glownie wersja 4.0, zadko 4.1. Tak ze pisz conajmniej pod 4.0, bo zanim skonczysz to juz nie bedzie 3ki, a byc moze zapanuje czas 4.1.
Cytat piszę to do CMS'a, który stram się pisać zgodny ze starszymi wersjami php oraz MySQL. Ale po co -- chyba nie piszesz pod php3? Wiekszosc hostingow posiada najnowesze wersje oprogramowania (lub starsze, rozniace sie cyfra na ostatniej pozycji wersji), a pisanie w zgodnosci ze starymi wersjami uniemozliwi ci skorzystanie z mozliwosci nowych wersji. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:52 |