Spoko, już łapię dokładnie co i jak. Sam MySQL takiego czegoś nie oferuje. Ja widzę tutaj dwie opcje. Musisz albo napisać
własny index w PLSQlu, albo na warunkach. Wyglądałoby to mniej więcej tak, że musiałbyś dać
ifa i sortować po
xyz, gdzie
x jest równe
0, jak masz mniej jak trzy znaki,
y to
liczba, a
z to
literka, lub
a jeśli jej nie ma. Musisz wtedy w
order by dać mniej więcej takie coś:
if length(pole) < 3 then "0" else "" + pole + if length(pole) < 2 then +"a" else ""
Tylko przerób to na
SQLa W ten sposób będziesz miał zawsze ciąg trzech znaków. Gdzie dwa pierwsze to cyfra, a ostatni to literka. Gdyby był jednocyfrowy, dostaje na początek
0, a jakby nie było literki, to dostaje
a.
Wtedy całe sortowanie przebiega już normalnie- 1a znajduje się po 1 a nie po 11. Innych pomysłów już nie mam. Mam z kolei nadzieję, że załapałeś ideę tego.