mysql和access字符字段数字排序不对 sql转换为数字排序方法

 

 

代码如下:
ORDER BY `meta_value`

 

那么按得分排序得到的结果可能是:
1
10
11
123
1234
2
25
253
3

首先我们用普通的排序来进行,发现结果不对,这个是因为字段是字符类型。所以123排在了2的前面,显然不符合我们的要求,那么怎样才能按照我们预想的数字顺序排序呢?下面发给大家解决办法

 

解决办法使用MySQL绝对值函数ABS ,access也通用。

     使用MySQL绝对值函数ABS,它告诉MySQL使用绝对值来处理处理这个字段:

 

代码如下:
ORDER BY ABS(`meta_value`)