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之DML语言
Apr 05 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
一文弄懂MySQL索引创建原则
Feb 28 MySQL
MySQL中一条update语句是如何执行的
Mar 16 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
MySQL实现字段分割一行转多行的示例代码
Jul 07 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 MySQL
DQL数据查询语句使用示例
Dec 24 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基础学习之变量的使用
2011/06/09 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
Python实现简单登录验证
2016/04/13 Python
python斐波那契数列的计算方法
2018/09/27 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
机械工程及自动化专业求职信
2014/09/03 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
高中语文教学反思范文
2016/02/16 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
Python标准库之typing的用法(类型标注)
2021/06/02 Python
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技