Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Największy z mniejszych
msulik
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
msulik
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.09.2025 - 08:44