Trie sur un mélange numérique et alphanumérique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 658 fois - Téléchargée 19 fois

Contenu du snippet

J'ai pas mal bataillé sur un trie pour mon site, je voulais trier un champ qui contient le classement de campings, à savoir 1 étoile, 2 étoiles, non classée... En présentant en premier les 4 étoiles,3,.., non classés.
Essai avec un tri classique : les non classés se mettent en premier et suivent les étoiles 4,3,2... -> pas bien
Pour que cela puisse fonctionner, un truc tout simple : voir le code

Source / Exemple :


SELECT * FROM `ma_table` WHERE `type`='camping' ORDER BY HEX(`classement`) Desc

Conclusion :


Voila, c'est simple, la fonction HEX() convertie le premier caractère en hexadécimal, et le trie se fait sur ce code hexa. les chiffres étant avant les lettres 0: code 30, A: code 41, a code 61, etc., etc.

P.-S. Cela ne fonctionne pas avec ASCII(), pourquoi, je ne sais pas.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.