![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę o nazwie moja_tabela, w której między innymi znajduje się pole typu INT o nazwie moje_pole. W tabeli są zapisane jakieś dane, a w polu moje_pole są jakieś liczby (parami różne). Ponadto daną mam konkretną liczbę, powiedzmy 100.
Jak mogłoby wyglądać zapytanie, które zwróci rekord o największej wartości pola moje_pole mniejszej niż 100? Np. jeśli w tabeli moja_tabela w polu moje_pole znajdują się liczby 10, 412, 97, 211, 95, 432, 23, 103, 11, to ma zostać zwrócona liczba 97 (największa spośród liczb mniejszych od 100). Poniższe rozwiązanie: Kod SELECT * FROM moja_tabela WHERE moje_pole<100 ORDER BY moje_pole DESC LIMIT 1
nie satysfakcjonuje mnie czasowo, ponieważ sortowanie (ORDER BY) wydaje się być w tym przypadku nadużyciem. Jak sformułować zapytanie nie używające ORDER BY? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Hehe, thx, ale mi chodzi o coś takiego:
Kod SELECT * FROM moja_tabela WHERE moje_pole IN (
SELECT MAX(moje_pole) FROM moja_tabela WHERE moje_pole<100 ); ale bez użycia subselektów, czyli bez użycia IN, bo moja wersja mysql tego nie obsługuje. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 08:44 |