如果你的数字可以小于或大于0,你如何按数字排序?
Mysql表示例:
|Name|Karma|
__________
|Me | -8 |
|Bill| 5 |
|Tom | 2 |
|Saly| 0 |
|San.| -3 |select查询示例
$sql="SELECT karma FROM table ORDER BY karma DESC";我得到的结果是(用逗号分隔):5,2,0,-8,-3。它不应该是5,2,0,-3,-8吗?我在互联网上发现mysql是按字符串排序的。如何使其按编号排序?
发布于 2010-07-02 03:25:11
如果您已将Karma设置为字符串,即varchar列,则会将其作为字符串进行排序。
将该列转换为INT,它将按数字排序。
您还可以选择不更改表,但在排序时将列转换为正确的类型:
SELECT karma FROM table ORDER BY CAST(karma AS int) DESC但这对性能是不利的。
发布于 2010-07-02 03:31:02
还有另一个最奇怪的选择:
SELECT karma FROM table ORDER BY karma+0 DESChttps://stackoverflow.com/questions/3160994
复制相似问题