Tri des colonnes de chaînes avec des nombres intégrés dans SQL
En SQL, il est possible de trier les colonnes de chaînes contenant des nombres à l'aide de techniques spécifiques. Cela peut être utile lorsque l'algorithme de tri naturel des bases de données comme MySQL ne produit pas les résultats souhaités.
Pour réaliser un tri personnalisé des colonnes de chaînes avec des nombres, plusieurs approches peuvent être utilisées :
Utiliser CAST et SUBSTRING :
<code class="sql">SELECT * FROM table ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column)+1) AS SIGNED)</code>
Cette technique décompose la colonne en deux parties : le préfixe avant l'espace et le nombre après. Le nombre est ensuite converti en un type numérique (dans ce cas, SIGNÉ) à des fins de comparaison.
Utilisation de SUBSTRING_INDEX :
<code class="sql">ORDER BY SUBSTRING_INDEX(st, " ", 1) ASC, CAST(SUBSTRING_INDEX(st, " ", -1) AS SIGNED)</code>
Cette approche utilise la fonction SUBSTRING_INDEX pour extraire le préfixe et les composants numériques. Il trie ensuite d'abord par préfixe, puis par nombre converti.
Remarque : Si le modèle de colonne diffère de "WORD_space_NUMBER", une approche différente peut être nécessaire.
Exemples :
Sample Data | Natural Sorting | Custom Sorting |
---|---|---|
a 1, a 12, a 6, a 11 | a 1, a 12, a 2, a 3 | a 1, a 2, a 3, a 12 |
b 1, b 12, b 6, b 11 | b 1, b 12, b 2, b 3 | b 1, b 2, b 3, b 12 |
En employant ces techniques, il est possible de trier les colonnes de chaînes avec des nombres intégrés de manière personnalisée, garantissant ainsi que les résultats correspondent aux exigences spécifiques de l'application.
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!