码迷,mamicode.com
首页 > 数据库 > 详细

mysql排序

时间:2018-08-24 21:48:10      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:方法   box   div   read   des   Fix   最简   order   pos   

 

 

SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ;


SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID + 1);

 
 
 

mysql将字符串字段转为数字排序或比大小

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/superit401/article/details/78007969

mysql里面有个坑就是,有时按照某个字段的大小排序(或是比大小)发现排序有点错乱。后来才发现,是我们想当然地把对字符串字段当成数字并按照其大小排序(或是比大小),结果肯定不会是你想要的结果。

这时候需要把字符串转成数字再排序。

最简单的办法就是在字段后面加上+0

如把‘123‘转成数字123(以下例子全为亲测):

排序:

例:

方法一:ORDER BY ‘123‘+0;(首推)

方法二:ORDER BY CAST(‘123‘ AS SIGNED);
方法三:ORDER BY CONVERT(‘123‘,SIGNED);

比大小:

例:

SELECT ‘123‘+0;  --   结果为123

SELECT ‘123‘+0>127;  --   结果为0

SELECT ‘123‘+0>12;  --   结果为1

 

SELECT CAST(‘123‘ AS SIGNED);    --  结果为123

SELECT CONVERT(‘123‘,SIGNED)>127;   --  结果为0

SELECT CONVERT(‘123‘,SIGNED)>12;   --  结果为1

 

SELECT CAST(‘123‘ AS SIGNED);  -- 结果为123

SELECT CAST(‘123‘ AS SIGNED)>127;  -- 结果为0

SELECT CAST(‘123‘ AS SIGNED)>12;   -- 结果为1

 

综合例子:

SELECT ‘123‘+0>12 ORDER BY CONVERT(‘123‘,SIGNED);  --  结果为1

mysql排序

标签:方法   box   div   read   des   Fix   最简   order   pos   

原文地址:https://www.cnblogs.com/timxgb/p/9532067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!