"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo ordenar los números de versión de MySQL almacenados como `varbinary(300)`?

¿Cómo ordenar los números de versión de MySQL almacenados como `varbinary(300)`?

Publicado el 2024-11-15
Navegar:321

How to Sort MySQL Version Numbers Stored as `varbinary(300)`?

Clasificación del número de versión de MySQL

Al almacenar números de versión como varbinary(300) en MySQL, ordenarlos usando el orden predeterminado por número_de_versión puede producir resultados incorrectos. Para resolver esto, considere utilizar la función INET_ATON para facilitar la clasificación.

La consulta modificada:

SELECT version_number 
FROM table 
ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))

Esta técnica se basa en la función INET_ATON para convertir una cadena que representa una dirección IP en una representación numérica . Al concatenar '.0.0.0' con número_versión, nos aseguramos de que cada número de versión tenga al menos cuatro componentes, que luego utilizamos SUBSTRING_INDEX para extraer.

Ordenando según la representación numérica de los primeros cuatro componentes de cada número de versión, logramos el orden de clasificación deseado. Sin embargo, tenga en cuenta que, dado que esta clasificación se basa en una función, puede generar una penalización en el rendimiento en comparación con la clasificación directamente en la columna con un índice.

Otra solución, propuesta por @spanky, implica separar los componentes del número de versión en columnas individuales. Por ejemplo, cree columnas para las versiones principal, secundaria, de parche y de compilación. Este enfoque permite una clasificación eficiente de componentes específicos, pero puede requerir una manipulación de datos más compleja.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3