mysql - mysql中的自然排序技术

标签 mysql sql select sql-order-by substring

我在 mysql 中执行自然排序时遇到问题。我是一个 mysql 菜鸟,也许这会增加问题

我在我工作的网站上有一个公共(public)汽车号码列表

列表最初是随机的

巴士名称

F1
F22
F10
F15
F7
F90

我试图用这个进行自然排序

mysql> SELECT version
-> FROM version_sorting
-> ORDER BY CAST(version AS UNSIGNED), version;

取自http://www.mpopp.net/2006/06/sorting-of-numeric-values-mixed-with-alphanumeric-values/

但是我现在有以下内容

F1
F10
F15
F22
F7
F90

正如我所注意到的,我相信上面的问题与 mysql 为每个字符串附加的虚零有关,从而使 F7 成为 F70,即 > F22

我希望我的列表是这样的

F1
F7
F10
F15
F22
F90

你们能帮帮我吗

最佳答案

试试这个:

SELECT vs.version
FROM version_sorting vs
ORDER BY CAST(SUBSTRING(vs.version,2) AS SIGNED), vs.version;

关于mysql - mysql中的自然排序技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604385/

相关文章:

MySQL 守护进程拒绝以 "Can' 启动服务器 : Bind on TCP/IP port: Address already in use"(it's not).

sql - 我将如何编写此 SQL 查询?

mysql - sql加入where和1-n连接

Angular Material - md-select - 在下拉列表中选择的项目

sql - SQL中的偶数或奇数

sql - sum() 未按预期工作

php - 更新功能不更新,为什么没有传递 ID?

php - 奇怪的 php mysql 变量类型问题

php - 需要查看日期范围是否与sql中的另一个日期范围重叠

mysql - 查询建立带内连接的临时表