sql - SQL 中的 ORDER BY

标签 sql mysql

我有一个字符串类型的列,其中包含以下行中的值:

1-1
1-5
1-14
1-7
1-3

现在,如果我在该列上使用 ORDER BY,我得到的顺序为:

1-1
1-14
1-3
1-5
1-7

将其排序为 1-1, 1-3, 1-5,1-7,1-14 的正确方法是什么

谢谢你的时间

最佳答案

假设您的第一个字符也可能不同:

order by convert(substr(my_field, 1, locate(my_field, '-') - 1) as int),
         convert(substr(my_field, locate(my_field, '-') + 1) as int)

关于sql - SQL 中的 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692399/

相关文章:

mysql - 如何使用 date > NOW() ASC 和其余 DESC 对 SQL 结果进行排序?

mysql - 将数据从 txt 文件导入到 mysql workbench - windows

php - 计算多个字段

sql - 在关系数据库中建模原子事实

Sql-server Full Text CONTAINS + COLLATE 忽略重音问题

sql - 在一个查询中比较 Postgres 中的两个值

php - MySQL 查询用数字排序

使用非管理员帐户时,SQL Linked Server 返回错误 "no login-mapping exists"

MySQL 在选择时获取项目编号

MySQL存储函数SELECT INTO意外结果