Maison >base de données >tutoriel mysql >Comment trier les numéros de version MySQL stockés sous « varbinary(300) » ?
Tri des numéros de version MySQL
Lors du stockage des numéros de version sous forme varbinary(300) dans MySQL, les trier en utilisant l'ordre par défaut par numéro de version peut donner des résultats incorrects. Pour résoudre ce problème, pensez à utiliser la fonction INET_ATON pour faciliter le tri.
La requête modifiée :
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
Cette technique s'appuie sur la fonction INET_ATON pour convertir une chaîne représentant une adresse IP en une adresse numérique représentation. En concaténant '.0.0.0' au numéro_version, nous nous assurons que chaque numéro de version comporte au moins quatre composants, que nous utilisons ensuite SUBSTRING_INDEX pour extraire.
En triant en fonction de la représentation numérique des quatre premiers composants de pour chaque numéro de version, nous obtenons l'ordre de tri souhaité. Notez cependant que ce tri reposant sur une fonction, il peut engendrer une pénalité de performances par rapport au tri directement sur la colonne avec un index.
Une autre solution, proposée par @spanky, consiste à séparer les composants du numéro de version en colonnes individuelles. Par exemple, créez des colonnes pour les versions majeures, mineures, de correctifs et de build. Cette approche permet un tri efficace sur des composants spécifiques, mais peut nécessiter une manipulation de données plus complexe.
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!