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


    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

  • 相关阅读:
    Python os模块介绍
    (转) JAVA中如何设置图片(图标)自适应Jlable等组件的大小
    (转)统计学习-2 感知机知识准备(模型类型、超平面与梯度下降法)
    详细讲述MySQL中的子查询操作 (来自脚本之家)
    (转)详解数据库的自然连接
    MySQL 数据类型 详解
    MySql详解(四)
    MySql详解(五)
    MySql详解(七)
    MySql详解(一)
  • 原文地址:https://www.cnblogs.com/timssd/p/9532067.html
Copyright © 2020-2023  润新知