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

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

 
 
 

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

2017年09月17日 01:36:31 阅读数:6566
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 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将字符串字段转为数字排序或比大小的更多相关文章

  1. 对mysql数据库字符串类型的数字排序

    select * from user where  1=1 order by  salary*1 desc limit 0,5 or select * from user where  1=1 ord ...

  2. mysql—从字符串中提取数字(类型1)

    select reason,CHAR_LENGTH(reason),mid(reason,5,CHAR_LENGTH(reason)-5)+0 from `table` 解释: CHAR_LENGTH ...

  3. Mysql hql字符串字段中是否包含某个字符串,用 find_in_set

    有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被','分开,现在要取出具有某权限的所有成员列表. 创建表: 1 CREATE TABLE us ...

  4. C# DataTable中按字符串中的数字排序

    例如datatable中有一列是门牌号格式是xx-xx-xx,或字符串中含有汉字或其他符号等等,如何按照正确的数字顺序排序呢? 1.获得字符串中的数字. 2.在datatable中添加一列,类型是In ...

  5. oracle 字符串转为数字排序

    select * from user order by  to_number(dept_id) asc

  6. MySQL按指定字段自定义列表排序

    亲测实例: 1级排序:同城>异城 2级排序:未领养>以领养 3级排序:发布最新靠前 MYSQL语句如下: SELECT ura.id,ura.city,ura.uid,ura.rescue ...

  7. 黄聪:MySQL 按指定字段自定义列表排序

    问题描述 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` , , , ) ORDER BY `id` ASC ...

  8. mysql将字符串转化为数字

    我的字段为内容为数字,但是类型为字符串,需要使用CASE转换即可 SELECT MAX(CAST(C_id AS UNSIGNED)) INTO id 即查询出来最大的C_id,否则会按照字符串查询最 ...

  9. MySQL:字符串字段加索引

    1. 使用方式 1.1 全字段加索引 给整个字段加索引,索引存储整个字段的值. 数据量较小时,查询成本高,准确度高: 数据量较大时,比较耗费空间: 1.2 前缀索引 MySQL支持前缀索引,可以定义字 ...

随机推荐

  1. Author name disambiguation using a graph model with node splitting and merging based on bibliographic information

    Author name disambiguation using a graph model with node splitting and merging based on bibliographi ...

  2. NOIP 2011 Day 1

    NOIP 2011 Day 1 tags: NOIP 搜索 categories: 信息学竞赛 总结 铺地毯 选择客栈 Mayan游戏 铺地毯 Solution 因为只会询问一个点被谁覆盖, 而且后面 ...

  3. 【python】pymongo中正则查询时的转义问题

    在查询mongo时用到了正则查询 设字符串为   str = '/ab/cd.ef?g=' 直接用正则查询没有匹配. collection.find({"re":{'$regex' ...

  4. poj 3280(区间DP)

    Cheapest Palindrome Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7869   Accepted: 38 ...

  5. 【转载】关于Python的Mixin模式

    本博按: mixin是看起来是多继承的一种,但是,这种继承并不作为父类存在,而是增加功能到子类中. 像C或C++这类语言都支持多重继承,一个子类可以有多个父类,这样的设计常被人诟病.因为继承应该是个” ...

  6. Linux磁盘的性能详细测试办法

    # 测试写入20Gb文件sync && time -p bash -c "(dd if=/dev/zero of=test.dd  bs=1000K count=20000; ...

  7. webStorm配置es6转es5

    话说又开始新项目了,刚好今天学习的es6新语法可以试试手,回到家后开始继续学习,然后只是学习es6没有必要弄个gulp,总觉得浪费. 那么前端开发神器的webStorm是一定会支持es6的,于是百度了 ...

  8. lr_Controller界面图

    lr可用运行图介绍: lr集合点策略:

  9. 深入理解String.intern()方法

    首先进入intern()的源码中, 首先说一点:1.7后的JVM为String在方法区中开辟了一个字符串常量池,如果一个String()不是new()出来的,都将在常量池中拿字符. 注释翻译过来就是, ...

  10. 五十五 网络编程 UDP编程

    TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包.但是,能不 ...