Dmi*_*try 28 mysql sql sql-order-by
我有一个查询订购column:
select * from mytable order by column asc — sort table
Run Code Online (Sandbox Code Playgroud)
column type是varchar,所以输出是:
1
10
100
11
12
13
Run Code Online (Sandbox Code Playgroud)
如果我希望它们按数值排序,我应该如何排序,因此输出为:
1
10
11
12
13
100
Run Code Online (Sandbox Code Playgroud)
Pab*_*ruz 47
使用:
order by cast(column as unsigned) asc
Run Code Online (Sandbox Code Playgroud)
Vin*_*han 24
如果您只想将其column视为INT:
SELECT * FROM mytable ORDER BY column+0;
1
10
11
12
13
100
Run Code Online (Sandbox Code Playgroud)
或者这个,如果你想治疗column既INT和VARCHAR
SELECT * FROM mytable ORDER BY column+0, column; #this will sort the column by VARCHAR first and then sort it by INT
abc
xyz
1
10
11
12
13
100
Run Code Online (Sandbox Code Playgroud)
mma*_*tax 12
这也应该有效:
order by (0 + column) asc
小智 8
如果我们只是稍微通过声明修改顺序(在字段顺序中添加"+0"),您可以强制MySQL自然地对字段进行排序.
> select * from mytable order by column+0 asc;
column
1
10
11
12
13
100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32409 次 |
| 最近记录: |