![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 13 Dołączył: 16.03.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele w ktore sa pola zawierajace wartosc liczbowa i chcialbym skonstruowac JEDNO zapytanie ktore wykona pewna operacje.
Powiedzmy, ze ta tabela zawiera top 100 najdrozszych produktow a pole 'cena' zawiera cene produktu. Tabela powinna zawierac maksymalnie 100 produktow wiec gdy do tabeli zostanie dodanych 7 nowych o wysokiej cenie to tyle samo starych trzeba usunac (oczywiscie przedstawiona wyzej sytuacja jest fikcyjna i wymyslilem ja aby najprosciej przedstawic moj problem bo jest on nieco bardziej zlozony). Chodzi o to aby za pomoca DELETE usunac te 7 rekordow w ktorych wartosc pola 'cena' jest najmniejsza. Czy jest to mozliwe do osiagniecia za pomoca tylko jednego zapytania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Normalnie najpierw pobralbym okreslona liczbe rekordow w ktorych wartosc pola 'cena' jest najnizsza przy pomocy ORDER BY oraz LIMIT w celu pozyskania kluczy tych rekordow a pozniej za pomoca kolejnego zapytania usunal te rekordy na podstawie wczesniej pobranych kluczy, ale to dwa lub wiecej zapytan a ja chcialbym to zrobic za pomoca tylko jednego zapytania. Czy jest to mozliwe a jesli tak to w jaki sposob (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował PiXel2.0 20.12.2007, 04:27:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Chodzi o to aby za pomoca DELETE usunac te 7 rekordow w ktorych wartosc pola 'cena' jest najmniejsza.
// EDIT aczkolwiek... lepiej tak:
Pierwsze zapytanie usunie po prostu 7 rekordów o najniższej cenie czyli mając np. Kod 10 20 30 40 50 60 70 70 70 te 2 ostatnie 70 nie zostaną usunięte. Drugie zapytanie natomiast powinno usunąć poprawnie wszystkie te rekordy. Ten post edytował phpion.com 20.12.2007, 06:33:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 01:25 |