2015-04-21 5 views
0

Voici mes données de test (MySQL)Comment appliquer Trier par le texte avec l'entrée de chiffres

test1 
test2 
test3 
test10 
test11 
mytest 

Je veux commander ces enregistrement par texte, et que par numéro suivant (le cas échéant):

mytest 
test1 
test2 
test3 
test10 
test11 

Et Quand j'utilise Order By, mes données sont triées sous forme de texte, comme suit:

mytest 
test1 
test10 
test11 
test2 
test3 

quelqu'un pourrait me fournir une solution?

+0

Avez-vous toujours numéro à la fin? Avez-vous vu cette question http://stackoverflow.com/questions/12097368/mysql-order-by-string-with-numbers? Voici aussi une bonne explication de la façon de le faire: http://www.copterlabs.com/blog/natural-sorting-in-mysql/ – Stepashka

+0

Cher Stepashka, En fait, je ne suis pas sûr que j'ai un peu de temps pour mon dossier alphabétique et un peu de temps alphanumérique + alphabétique alors dans ce cas ce que je vais faire. Comme le beuglement. asdasda Faisal Ville Gulshan nouveau secteur ravi Hills Secteur sector1 secteur2 secteur3 secteur4 sector10 Sector9 Merci –

+0

Ainsi, la chaîne 'sector' est statique? –

Répondre

0

Dans ma requête je partagerai des valeurs alphanumériques des valeurs de chaîne, peigner le résultat, jetez un oeil:

select temp1.a col from 
    (select a from tabl WHERE a not REGEXP '[0-9]' order by length(a)) temp1 
    union all 
    select temp2.a from 
    (select a FROM tabl WHERE a REGEXP '[0-9]' order by length(a),a) temp2 ;