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为id选择合适的数据类型
Jun 07 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
浅谈MySQL函数
Oct 05 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Nov 27 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
一次Mysql update sql不当引起的生产故障记录
Apr 01 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
解决MySQL报“too many connections“错误
Apr 19 MySQL
MySQL GTID复制的具体使用
May 20 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中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
django中的ajax组件教程详解
2018/10/18 PHP
js模拟类继承小例子
2010/07/17 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中pygame模块用法实例
2014/10/09 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
如何通过python实现人脸识别验证
2020/01/17 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
通过代码实例了解Python sys模块
2020/09/14 Python
Python descriptor(描述符)的实现
2020/11/15 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
教师师德反思材料
2014/02/15 职场文书
结婚保证书范文
2014/04/29 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
消防演习感想
2015/08/10 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL