Convertir du texte non numérique partiel en nombres pour le tri des requêtes MySQL
Dans MySQL, trier les colonnes varchar en fonction des valeurs numériques intégrées peut être difficile . Cette question aborde un scénario pratique dans lequel une colonne contient des identifiants au format « nom-numéro » et doit être triée en fonction de la composante numérique.
Problème :
La colonne contient du texte au format « nom-numéro », avec le composant numérique intégré dans le texte. Le tri de la colonne en utilisant l'ordre des caractères par défaut entraîne une séquence inexacte en raison de la comparaison des caractères.
Solution :
Pour résoudre ce problème, il est nécessaire de convertir le non -texte numérique en nombres avant le tri. La requête suivante peut accomplir cela :
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num FROM table ORDER BY num;
Explication :
Supplémentaire Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!