![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Problem jest taki: mam kolumne w ktorej dane maja format 'a1_1', 'a1_2', 'a1_3' itd. Chcialbym teraz aby przy robieniu selecta dane byly sortowane po tej kolumnie i tu robi sie problem gdyz dostaje coś takiego: a1_1 a1_10 a1_11 a1_12 a1_2 a1_21 a1_3 itd a chcialbym: a1_1 a1_2 a1_3 a1_10 a1_11 a1_12 a1_21 itd. Typ kolumny musi byc varchar. Zastanawiałem sie nad rozbiciem tego na 2 kolumny tak aby liczenie bylo po intach ale wtedy reszta już istniejącej aplikacji sie rozsypie. Mogę też wrzucić wszystko do tablicy php i posortowac wynik po użyciu exploda ale to mało wydajne rozwiązanie. Czy na poziomie samego SQLa mozna jakąś funkcją przesortować tego typu dane ? pozdrawiam Grzegorz wygooglało mi się coś takiego - gdyby ktoś szukał
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Czyli sortowanie naturalne, sprawdź czy to co tutaj jest podane zadziała u Ciebie: http://www.copterlabs.com/blog/natural-sorting-in-mysql/
W php to można zrobić szybko, za pomocą natsort();, w MYSQL trzeba pokombinować. Zobacz też tutaj: http://stackoverflow.com/questions/8557172...meric-correctly Ten post edytował kreatiff 4.05.2015, 12:18:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:36 |