php - 当列格式为varchar时如何查询顺序为asc(或desc)

标签 php mysql

我有一个表 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/

相关文章:

PHP Curl 请求不起作用但在 POSTMAN 中工作正常

php - php 表单中的提交按钮也可以作为 anchor 吗?

php - Vim : What are the required lines in ~/. vimrc 的语法? (PHP 错误检查)

java - 从Java读取的SQL存储过程文本

php - 富文本和参数化查询,我应该担心吗?

php运行shell脚本

php - 如何使用pdo准备语句在mysql中插入多条记录?

mysql - 使用查询从 WordPress 中的帖子中删除链接

mysql - mysql如何同时处理删除和选择查询?

mysql - 使用 Doctrine QueryBuilder 的 Select 语句的 INNER JOIN 结果