Tri efficace des numéros de version MySQL
Lorsque vous traitez les numéros de version stockés sous varbinary(300) dans MySQL, il est possible d'obtenir un ordre de tri précis stimulant. La requête couramment utilisée, "sélectionner le numéro_version dans l'ordre de la table par numéro_version asc", ne parvient souvent pas à produire les résultats souhaités.
Une solution efficace à cette énigme de tri consiste à exploiter la fonction INET_ATON. En utilisant la requête suivante, vous pouvez obtenir l'ordre de tri souhaité :
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
Cette technique exploite la fonction INET_ATON pour convertir les adresses IP sous leur forme numérique. En concaténant le numéro de version avec « .0.0.0 » à l'aide de la fonction CONCAT, nous nous assurons que chaque ligne comporte au moins quatre parties. La fonction SUBSTRING_INDEX extrait ensuite les quatre premières parties pour que la fonction INET_ATON opère sa magie.
Il est important de noter que cette approche utilise une fonction plutôt que la colonne elle-même pour le tri. Par conséquent, cela peut être plus lent que le tri sur une colonne indexée. Pour les cas où les performances sont critiques, envisagez d'utiliser une approche de colonnes distinctes, comme suggéré par @spanky.
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!