我想从mysql表中获取数据,并按其中一个varchar列排序.所以我要说我有这样的查询:
SELECT name, model FROM vehicle ORDER BY model
Run Code Online (Sandbox Code Playgroud)
问题是,对于像这样的'模型'值:'S 43','S 111',顺序将是:
S 111
S 43
Run Code Online (Sandbox Code Playgroud)
因为我认为ORDER BY使用字母顺序规则,对吧?那么如何修改此查询以获得"数字"顺序?'S 43'将在'S 111'之前?无需更改或向此表添加任何数据.
像这样的东西:
SELECT name, model
FROM vehicle
ORDER BY CAST(TRIM(LEADING 'S ' FROM model) AS INTEGER)
Run Code Online (Sandbox Code Playgroud)
请注意,按功能结果排序并不是一个好习惯,因为它会产生动态的无索引结果,这种结果可能非常慢,尤其是在大型数据集上.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |