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
DDDoriginal
2024-12-07 11:27:121026parcourir

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

Le résultat serait :

number
009
042
9

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

Produira désormais le champ souhaité. tri :

number
9
009
042

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!

Déclaration:
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