我有一个章节列,它的值类似于
Chapter 1
Chapter 2
Chapter 11
Chapter 12
Chapter 3
Chapter 4
订购时,显示为
Chapter 1
Chapter 11
Chapter 12
Chapter 2
Chapter 3
Chapter 4
我需要这样
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 11
Chapter 12
答案 0 :(得分:2)
这称为Natural Sort
。你能试试吗?但没有完美的自然分类方法。
SELECT col
FROM tab
ORDER BY LENGTH(col), col;
即使前缀不一样,如果像这样修改也可以进行排序(我是对的吗?我认为第一个查询在OP的情况下效果很好。但不确定下面的查询是否一般)
SELECT col
FROM tab
ORDER BY col, LENGTH(col), col;
答案 1 :(得分:2)
假设你总是有“章节”,然后是一个数字,你可以试试这个:
SELECT chapters
FROM tab1
ORDER BY LENGTH(chapters), chapters