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 24 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
May 02 MySQL
MySQL索引知识的一些小妙招总结
May 10 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
MySQL日期时间函数知识汇总
Mar 17 MySQL
MySQL Server层四个日志的实现
Mar 31 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 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
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
php二维码生成
2015/10/19 PHP
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
TensorFlow模型保存和提取的方法
2018/03/08 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python中dict()的高级用法实现
2019/11/13 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python文件操作函数用法实例详解
2019/12/24 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python分类测试代码实例汇总
2020/07/23 Python
python二维图制作的实例代码
2020/12/03 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
几个MySql的面试题
2013/04/22 面试题
给女儿的表扬信
2014/01/18 职场文书
新年寄语大全
2014/04/12 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2015年党员自评材料
2014/12/17 职场文书
放假通知格式
2015/04/14 职场文书
MySQL约束超详解
2021/09/04 MySQL