我有一个表 product(ID, name, quality)
quality 是 varchar(55)
用我的数据
1 | Iphone 3 | 7
2 | Iphone 3S | 8
3 | Iphone 4 | 79
4 | Iphone 4S | 9
5 | Iphone 5 | 10
我的查询:
Select * From product order by quanlity DESC
但是result不能按quality排序,因为quality是varchar,如何查询准确排序
4 | Iphone 4S | 9
2 | Iphone 3S | 8
3 | Iphone 4 | 79
1 | Iphone 3 | 7
5 | Iphone 5 | 10
最佳答案
不是一个优雅的方法,但你可以将列转换为整数
SELECT * FROM product ORDER BY CAST(quanlity AS UNSIGNED)
注意:当您有非整数时,您将遇到性能问题和意外顺序。我建议您最好将列类型更改为整数(如果可能 - 即使遇到一些麻烦)
关于php - 当列格式为varchar时如何查询顺序为asc(或desc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129171/