如果您的号码低于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,-8,-3.
不应该是5,-3,-8?
我在互联网上的某处发现MysqL按字符串排序.如何按号码订购?
如果你将它变成一个字符串,即一个varchar列,将以字符串的形式订购Karma.
将列转换为INT,它将以数字顺序排序.
您还可以选择不更改表,但在排序时将列转换为正确的类型:
- SELECT karma FROM table ORDER BY CAST(karma AS int) DESC
但这对性能不利.