Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie wyników "naturalne"
Brick
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Mam tabelę z polem VARCHAR która zawiera rekordy:
50
50A
50B
60
80
100
100A
110

Gdy zrobię SORT BY pole to otrzymuję:
100
100A
110
50
50A
50B
itd

Czy da się posortować to w sposób "naturalny" dla człowieka, czyli od najmniejszego do największego?
W tablicach jest coś takiego, nazywa się natsort.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Brick
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 9
Dołączył: 16.02.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dzięki za wskazówkę, po kilku próbach doszedłem do czegoś co w końcu działa
  1. SELECT * FROM tabela ORDER BY CAST(SUBSTRING(nazwa_pola,4,10) AS UNSIGNED), SUBSTRING(nazwa_pola,5,10) ASC


Ale niestety, nie jest to uniwersalny kod na wszystkie przypadki.
Szkoda że nie zrobili w MySQL takiej funkcji jak natsort bo często jest potrzebna, a chyba nie da się użyć jakieś uniwersalnej prostej metody.
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: 15.10.2025 - 10:52