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的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL 表空间碎片的概念及相关问题解决
May 07 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
解析MySQL binlog
Jun 11 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
MySQL定时备份数据库(全库备份)的实现
Sep 25 MySQL
Mysql案例刨析事务隔离级别
Sep 25 MySQL
浅谈如何保证Mysql主从一致
Mar 13 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
mysql 索引的数据结构为什么要采用B+树
Apr 26 MySQL
MySQL数据库如何查看表占用空间大小
Jun 10 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python 3.8 新功能全解
2019/07/25 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
基于python 凸包问题的解决
2020/04/16 Python
Django数据库迁移常见使用方法
2020/11/12 Python
Python中生成ndarray实例讲解
2021/02/22 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
祖国在我心中演讲稿
2014/01/15 职场文书
法制宣传月活动总结
2014/04/29 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
不同意离婚代理词
2015/05/23 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书