如果你的数字可以低于 0 并且大于 0,你如何按数字排序?
示例 Mysql 表:
|Name|Karma|
__________
|Me | -8 |
|Bill| 5 |
|Tom | 2 |
|Saly| 0 |
|San.| -3 |
示例选择查询
$sql="SELECT karma FROM table ORDER BY karma DESC";
我得到的结果是这样的(用逗号分隔):5,2,0,-8,-3。 不应该是 5,2,0,-3,-8 吗? 我在互联网上的某个地方发现 mysql 按字符串排序。如何让它按编号排序?
最佳答案
Karma
如果您已将其设为字符串,即 varchar
列,则将按字符串排序。
将列转换为 INT
,它将按数字排序。
您还可以选择不更改表格,而是在排序时将列转换为正确的类型:
SELECT karma FROM table ORDER BY CAST(karma AS int) DESC
但这对性能不利。
关于php - Mysql select order by 就像一个字符串,而不是一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160994/