Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Sortowanie decimal - złe wyniki
Forum PHP.pl > Forum > Przedszkole
HTO
Cześć

Mam problem z sortowaniem wartości przekonwertowanych z stringa (varchar) na decimal - otóż to co widzicie na zdjęciu(http://iv.pl/images/82295187879187153998.png) jest już po sortowane, jednak jak liczby są np. 10, 11, 12, to zamiast je umieścić na końcu umieszcza je w rzędzie pod "jednykami" a pod 10-stką zaczyna się dwójka

zapytanie sql;
  1. SELECT DISTINCT value, cast( (
  2. REPLACE( value, ",", "." ) ) AS decimal( 12, 2 )
  3. ) AS value2
  4. FROM tbl
  5. ORDER BY TRIM( value2 ) ASC


co może być przyczyną i jak to naprawić?
nospor
wywal tego TRIM, ktore na wyjsciu daje ci znowu stringa wiec sortujesz nie po liczbach a po stringu...

A juz najlepiej bys zrobil, jakbys poprawil typ pola w bazie i zamiast tekstow przechowywal tam wartosci liczbowe.
Gość
Trim wyrzuciłem, faktycznie głupio zrobiłem. Nie do końca - ponieważ dla "value" mogą wejść też teksty - więc tam mamy różny mix parametrów/cech wartości - po prostu to co teraz robie to indywidualny przypadek dla jednego z pól
ostatecznie udało mi się takie zapytanie stworzyć i działa.

  1. SELECT DISTINCT value, cast( (
  2. REPLACE( value, ",", "." ) ) AS decimal( 12, 2 )
  3. ) AS value2
  4. .....
  5. ORDER BY value2 +0 ASC
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.