Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie liczb DESC
Forum PHP.pl > Forum > Bazy danych > MySQL
uraharu
Witam
Mam takie oto zapytanie do bazy mysql
  1. $sql = 'Select * from tekst where widoczne>0 order by pozycja>0 Desc Limit '.$count.' offset '.$offset.';';


niestety nie sortuje mi liczb malejaca tylko jakos losowo, tabela w bazie mysql jest jako INT(11)

co moze byc tego przyczyna?

z gory dziekuje za pomoc
andycole
  1. 'SELECT * FROM tekst WHERE widoczne>0 AND pozycja>0 ORDER BY pozycja LIMIT '.$count.', '.$offset


w ORDER BY ma byc tylko nazwa pola, a nie warunkej (pozycja>0)
Chelo
$sql = 'Select * from tekst where widoczne>0 order by pozycja Desc Limit '.$count.' offset '.$offset.';';
thek
Chelo.... Ja bym się zastanawiał czy olać w warunku WHERE pozycja > 0, bo czort wie co tam siedzi. Jeśli będą wartości liczbowe jakieś to pół biedy, bo DESC faktycznie nam sprawę załatwi. Gorzej jeśli tam wskoczy NULL czy inne ustrojstwo bo nie wiadomo jak zareaguje na to baza. Czy wrzuci takie rekordy na początek czy może na koniec? Powinna niby na początek, przed wszystkimi wartościami w przypadku NULL, ale kto ja tam wie co zrobi faktycznie winksmiley.jpg
erix
Cytat
Gorzej jeśli tam wskoczy NULL czy inne ustrojstwo bo nie wiadomo jak zareaguje na to baza

Jest funkcja, którą możesz przecież zmieniać typy dynamicznie, w zapytaniu. ;]
thek
Można i zmieniać dynamicznie, ale WHERE powinien to zrobić szybciej. No i jakby na to spojrzeć logicznie to te rekordy z nullami są dla nas nieistotne, więc można je wyeliminowac z wyniku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.