问题:
MySQL 排序例程可能无法为存储的版本号提供所需的排序顺序如 varbinary(300)。排序需要考虑最多 20 位数字并产生如下结果:
1.1.2 1.2.3.4 2.2 3.2.1.4.2 3.2.14 4 9.1
解决方案:
通过以下查询使用 INET_ATON 函数:
SELECT version_number FROM table ORDER BY INET_ATON(SUBSTRING_INDEX(CONCAT(version_number,'.0.0.0'),'.',4))
该技术利用了 INET_ATON 将 IP 地址转换为整数的能力。通过将 .0.0.0 附加到版本号并使用 SUBSTRING_INDEX 仅提取前四个组件,我们可以有效地将版本号转换为可比较的整数表示形式。
其他注意事项:
以上是如何正确排序MySQL版本号?的详细内容。更多信息请关注PHP中文网其他相关文章!