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模式设计
Apr 05 MySQL
Mysql 性能监控及调优
Apr 06 MySQL
mysql 带多个条件的查询方式
Jun 05 MySQL
MySQL 全文检索的使用示例
Jun 07 MySQL
MySQL系列之十一 日志记录
Jul 02 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL Server层四个日志的实现
Mar 31 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 MySQL
Mysql数据库group by原理详解
Jul 07 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
window下eclipse安装python插件教程
2017/04/24 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Pytorch 实现权重初始化
2019/12/31 Python
用python解压分析jar包实例
2020/01/16 Python
python动态规划算法实例详解
2020/11/22 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
自主招生自荐信范文
2013/12/04 职场文书
股东协议书
2014/04/14 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
六一活动主持词
2015/06/30 职场文书
学生会招新宣传语
2015/07/13 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
52条SQL语句教你性能优化
2021/05/25 MySQL
关于vue-router-link选择样式设置
2022/04/30 Vue.js