Maison >base de données >tutoriel mysql >Comment trier numériquement les nombres stringifiés dans MySQL ?
Trier les numéros de chaîne par valeur numérique dans MySQL
Lorsqu'il s'agit de nombres stockés sous forme de chaînes dans une base de données MySQL, le tri par taille numérique peut être délicat. Les questions suivantes mettent en lumière le problème :
Question :
Comment trier une colonne contenant des nombres stringifiés par ordre croissant, en triant par leur taille numérique plutôt que par leur représentation en caractères ?
Réponse :
La conversion explicite ou implicite des valeurs de chaîne en entiers permet un ordre numérique correct :
Conversion explicite :
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED)</code>
Dans cet exemple, CAST convertit la colonne col en un entier non signé avant le tri.
Conversion implicite :
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0</code>
L'ajout de 0 oblige MySQL à interpréter col comme une valeur numérique avant de trier.
Remarque :
MySQL interprète les chaînes de gauche à droite pour la conversion. Par exemple :
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!