Maison  >  Article  >  base de données  >  Comment trier les colonnes de chaînes avec des nombres intégrés dans SQL ?

Comment trier les colonnes de chaînes avec des nombres intégrés dans SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 08:09:30793parcourir

How to Sort String Columns with Embedded Numbers in SQL?

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!

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