Maison >base de données >tutoriel mysql >Comment trier les colonnes de chaînes contenant des nombres dans SQL tout en préservant l'ordre ?
Tri des colonnes de chaîne contenant des nombres en SQL
Cette requête concerne le tri d'une colonne de chaîne contenant des nombres, où l'algorithme de tri par défaut place les nombres avec des zéros non significatifs après des nombres sans zéros non significatifs, modifiant potentiellement l'ordre prévu. L'utilisateur recherche une méthode pour remplacer ce comportement en utilisant SQL uniquement.
Une solution efficace à ce problème consiste à isoler la partie numérique de la chaîne à l'aide de la fonction CAST et de la fonction SUBSTRING. En extrayant la sous-chaîne numérique, la fonction CAST la convertit en valeur entière, permettant un tri approprié.
Voici un exemple de code :
<code class="sql">SELECT * FROM table ORDER BY CAST(SUBSTRING(column, LOCATE(' ', column) + 1) AS SIGNED)</code>
Par exemple, dans une colonne nommée "nom" avec des valeurs telles que "a 1", "a 12", "a 2" et "a 3", la requête produirait les résultats suivants :
+----------+ +-- name --+ +----------+ +-- a 1 ---+ +-- a 2 ---+ +-- a 3 ---+ +-- a 12 --+
Cette méthode trie efficacement les colonne basée sur les valeurs numériques, tout en préservant les préfixes alphanumériques.
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!