Maison > base de données > tutoriel mysql > Comment puis-je trier numériquement les champs VARCHAR dans MySQL ?

Comment puis-je trier numériquement les champs VARCHAR dans MySQL ?

DDD
Libérer: 2024-12-07 11:27:12
original
1024 Les gens l'ont consulté

How Can I Sort VARCHAR Fields Numerically in MySQL?

Tri numérique des champs Varchar dans MySQL : la fonction CAST

Dans certains scénarios, un champ varchar MySQL peut contenir des valeurs entières avec des zéros non significatifs, ce qui fait que le tri lexicographique s'écarte de l'ordre numérique souhaité. Pour résoudre ce problème, la fonction CAST propose une solution.

Problème :

Considérons une table avec un champ nommé "numéro" de type varchar, stockant des valeurs entières. Malgré son type de données, « numéro » contient des valeurs telles que « 009 » et « 042 ». Lors du tri à l'aide de la requête suivante :

SELECT * FROM table ORDER BY number ASC
Copier après la connexion

Le résultat serait :

number
009
042
9
Copier après la connexion

Solution :

Pour trier par valeurs numériques, MySQL fournit la fonction CAST. En convertissant le champ varchar en SIGNED INTEGER, les zéros non significatifs sont ignorés, ce qui entraîne un ordre numérique correct.

La requête modifiée à l'aide de la fonction CAST :

SELECT * FROM table ORDER BY CAST(number AS SIGNED INTEGER) ASC
Copier après la connexion

Produira désormais le champ souhaité. tri :

number
9
009
042
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal