Maison > base de données > tutoriel mysql > Comment MySQL peut-il réaliser un tri naturel des chaînes alphanumériques ?

Comment MySQL peut-il réaliser un tri naturel des chaînes alphanumériques ?

Barbara Streisand
Libérer: 2025-01-21 16:26:11
original
760 Les gens l'ont consulté

How Can MySQL Achieve Natural Sorting of Alphanumeric Strings?

Le tri naturel élégant de MySQL

Dans MySQL, trier logiquement les chaînes contenant des chiffres et des lettres peut être un défi. Prenons l'exemple d'ensemble de données suivant :

<code>最终幻想
最终幻想4
最终幻想10
最终幻想12
最终幻想12:普罗米西亚的锁链
最终幻想冒险
最终幻想起源
最终幻想战术</code>
Copier après la connexion

Comment obtenir un ordre naturel pour que Final Fantasy 10 apparaisse après Final Fantasy 4 au lieu d'avant Final Fantasy 2 ?

Solution élégante

Au lieu d'analyser manuellement le nom du jeu en ses composants (titre, numéro, sous-titre), essayez cette solution simple :

<code class="language-sql">SELECT alphanumeric, 
       integer
FROM sorting_test
ORDER BY LENGTH(alphanumeric), alphanumeric;</code>
Copier après la connexion

Cela fonctionne comme suit :

    La fonction
  1. LENGTH() compte le nombre de caractères dans chaque champ alphanumérique.
  2. La clause
  3. ORDER BY trie d'abord les lignes par ordre croissant de longueur. Cela regroupe efficacement les lignes avec le même nombre de caractères.
  4. Au sein de chaque groupe, les lignes sont triées par ordre croissant en fonction de leur valeur alphanumérique.

Cette méthode gère de manière transparente les titres de jeux contenant des chiffres et du texte, garantissant un ordre naturel qui répond à vos exigences. Il évite les tracas de l'analyse manuelle et est tout aussi robuste même lors de la gestion d'exceptions telles que "Warhammer 40,000" et "James Bond 007".

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal