SELECT code
FROM lock
ORDER BY code * 1
这将返回以下结果:
|code|
|T6 |
|X30 |
|4 |
我需要更改查询,以便它按以下顺序返回 code
行:
|code|
|4 |
|T6 |
|X30 |
code
列的类型为 VARCHAR
,因此查询中的 hacky 转换。有什么想法吗?
最佳答案
SELECT
*
FROM t
ORDER BY
CAST(code AS signed) > 0 DESC,
code
- 看到它在 sqlfiddle 中实时运行
关于MySQL 将字符串排序为整数,整数优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299584/