Problem skutecznego sortowania?

0

Jak posortować w MySQL coś takiego:

Do kolumny typu varchar() wstawiane są teksty np:

F1
F1_1
F1_2
F1_3
F2_1
F2_2
F10_1
F10_2
F10_3

wynik sortowania: select *from tabela order by kolumna;
daje nam coś takiego:

F1
F10_1
F10_2
F10_3
F1_1
F1_2
F1_3
F2_1
F2_2

jak to zrobić aby F10_1 itd. było w odpowiednim miejscu.

0

Co konkretnie masz na myśli mówiąc "w odpowiednim miejscu" ?
W którym ma być miejscu ?

0

MySQL nie ma czegoś takiego jak sortowanie naturalne. Możesz posortować kolumnę według długości tekstu (ORDER BY LENGTH(kolumna), kolumna)) albo przenieść sortowanie po za dbms.

0

Zapomniałem dodać ,że chodzi tu o MySQL 4.0 dlatego sprawa jest nieco trudniejsza.
Znane mi metody nie działają pod 4.0 ale jakoś to kiedyś robili pytanie jak?
Rozwiązanie ograniczenia ilości sortowanych znaków powinno dać oczekiwany efekt
Nie potrafię tego zapisać w zapytaniu pod 4.0 ?

0

musisz rozdzielić dane w tej kolumnie na tekst i liczby, tutaj będzie to raz tekst i dwie liczby, potem musisz części odpowiedzialne za liczby przekonwertować jawnie na liczby (np. numeric) i sortować po takich kolumnach. Ma to dużą wadę - nie korzysta z indeksów a w mssql4 chyba nie dało się zakładać indeksów funkcyjnych.
Pomocne funkcje locate substr

1 użytkowników online, w tym zalogowanych: 0, gości: 1