php – Mysql按字符串选择顺序,而不是数字

前端之家收集整理的这篇文章主要介绍了php – Mysql按字符串选择顺序,而不是数字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您的号码低于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

但这对性能不利.

猜你在找的PHP相关文章