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


Posted in MySQL onJune 14, 2022

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

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

sql语句字符串如何比较大小

需求如下,字段A是varchar类型,现在要将字段A与一个数字比较。上网搜索了一下,99%给出的方法都是cast(字段A as int),或者convent(int,字段A)。

不知道为啥,这两种方法我都试了,语法都不通过,更不用说运行了。

解决方法

写法如下:

select * from XX where 字段A+0 < 数字 + 0

是的,你没看错,就是“+0”这样一个简单的操作。

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

运行结果贴出来,自己看吧

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 MySQL
MySQL的join buffer原理
Apr 29 MySQL
Mysql文件存储图文详解
Jun 01 MySQL
浅谈MySQL next-key lock 加锁范围
Jun 07 MySQL
MySQL系列之十一 日志记录
Jul 02 MySQL
MySQL 开窗函数
Feb 15 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL 字符集 character
May 04 MySQL
mysql sql常用语句大全
Jun 21 MySQL
手把手带你彻底卸载MySQL数据库
MYSQL中文乱码问题的解决方案
Jun 14 #MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 #MySQL
MySql如何将查询的出来的字段进行转换
Jun 14 #MySQL
MySQL安装失败的原因及解决步骤
MySQL范围查询优化的场景实例详解
Jun 10 #MySQL
MySQL数据库如何查看表占用空间大小
Jun 10 #MySQL
You might like
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
微信小程序如何实现在线客服功能
2019/10/16 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
Python实现的简单算术游戏实例
2015/05/26 Python
详解supervisor使用教程
2017/11/21 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Python列表list排列组合操作示例
2018/12/18 Python
flask应用部署到服务器的方法
2019/07/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python持续监听文件变化代码实例
2020/07/22 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
2015年检验科工作总结
2015/04/27 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
python自动化八大定位元素讲解
2021/07/09 Python
springboot入门 之profile设置方式
2022/04/04 Java/Android
德劲DE1105机评
2022/04/05 无线电
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技