Wpis z mikrobloga

Mirki, mirki, w jaki sposób zrobić ORDER BY w MySQL, według kolumny Varchar, gdzie rekordy są zapisane w taki sposób:
xxx-1
xxx-2
xxx-3
...

Zwykły order by daje radę, ale od 11 do 99 (chyba, bo mam rekordy 42-100), a dalej rekordy są posortowane niepoprawnie. Tzn. w moim przypadku muszę pobrać najnowszy rekord (czyli z największą liczbą po myślniku), ale ORDER BY DESC zwraca mi rekordy z liczbami od 99 do 42, a rekord z liczbą 100 zamiast być na początku - jest na końcu. Próbowałem dodawać 0, robić CAST(rekord, DECIMAL), co prawda 100 mam na początku, ale pozostałe rekordy są posortowane źle, tzn:
100,
89,
90,
91,
92
...

#mysql #sql #webdev i dam #php
  • 7
@anonymous_derp: Próbowałem i nie sprawdza się.
@Jarod_SL: To akurat sprawdza się, ale tylko gdy podstawię RIGHT('Twoja_Kolumna', 3) , czyli podejrzewam, że do xxx-999 będzie w porządku, a potem się posypie.
@gosolution: Wiem, tzn. miałem podobny przypadek i dodałem nową kolumnę, ale tam był mały projekt, a tutaj jest duży i zbyt dużo trzeba zmieniać, po dodaniu jednej kolumny. Dam znać team leadowi, niech myślą co dalej z tym robić