前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mysql字符串转数字_mysql字符串转数字小计

mysql字符串转数字_mysql字符串转数字小计

作者头像
全栈程序员站长
发布于 2022-09-02 02:00:19
发布于 2022-09-02 02:00:19
2.4K0
举报

大家好,又见面了,我是你们的朋友全栈君。

问题:要求比较’100%’和’95%’的大小

实践:mysql> SELECT ‘100%’ > ‘95%’;

+—————-+

| ‘100%’ > ‘95%’ |

+—————-+

| 0 |

+—————-+

1 row in set (0.00 sec)

发现’100%’竟然小于’95%’

原因:因为是字符串,字符串比较是递归字符串里面的每个字符进行比较,先去第一个,1和9比较大小,则1比9小,输出结果;如果相等,则继续进行下一个字符比较

如果想要对这种类型的字符串进行大小比较,该怎么做呢?

转换为数字。

conv或者cast、convert

convert、cast的用法字符集转换 : CONVERT(xxx USING gb2312)

类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型),类型必须用下列的类型:

可用的类型

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

因为要转换为数字类型,如果是’100.12%’这种格式,最好是用decimal

新的比较方法如下:mysql> SELECT CAST(‘100.5%’ AS DECIMAL(10,2)) >CAST(‘99.6%’ AS DECIMAL(10,2)) bj;

+—-+

| bj |

+—-+

| 1 |

+—-+

1 row in set (0.00 sec)

mysql> SELECT CONVERT(‘100.5%’,DECIMAL(10,2)) >CONVERT(‘99.6%’,DECIMAL(10,2)) bj;

+—-+

| bj |

+—-+

| 1 |

+—-+

1 row in set (0.00 sec)

另外可以尝试conv函数,不过不能处理浮点型

其实,这样转换感觉有点儿不妥,要是mysql的模式换一下,估计会报错,最好的办法是把%号给替换掉,于是,就用下面这种方法mysql> SELECT CONVERT(REPLACE(‘100.5%’,’%’,”),DECIMAL(10,2)) >CONVERT(REPLACE(‘99.6%’,’%’,”),DECIMAL(10,2)) bj;

+—-+

| bj |

+—-+

| 1 |

+—-+

1 row in set (0.00 sec)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138999.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第01期:MySQL 数据类型的艺术
对于关系型数据库来说,表的设计 以及 SQL 的写法 尤为重要,占据性能的 90% 都不为过,所以这次专门针对这两大类知识领域,为您抽丝剥茧详细分析。
爱可生开源社区
2020/04/08
1.7K0
第01期:MySQL 数据类型的艺术
mysql转换字符串为数字_mysql字符与数字转换「建议收藏」
2,在进行ifnull处理时,比如 ifnull(a/b,’0′) 会导致 a/b成了字符串,因此需要把’0’改成0。
全栈程序员站长
2022/09/02
3.4K0
MySQL常用的函数
if函数用法是:if(expr,value1,value2),首先判断表达式的值,然后根据表达式的值返回value1和value2当中的某一个。
AsiaYe
2019/11/06
1.1K0
MySQL字符串中抽取数值的方法
MySQL的字符串函数非常多,以至于有时候我不知道该如何灵活的使用这些函数。 字符串基本信息函数 collation convert,char_length等 加密函数 password(x),encode, aes_encrypt 字符串连接函数 concat(x1,x2,….) 修剪函数 trim,ltrim,rtrim 子字符串操作函数 substring(x,start,length),mid(x,start,length) 字符串复制函数 repeat,space 字符串比
jeanron100
2018/03/22
1.6K0
mysql 字符串转数字再排序
只需要在order by后加上转换函数即可例如: order by CONVERT(sort,DECIMAL)
全栈程序员站长
2022/08/23
9410
mysql 符串类型的数字排序(字符串转数字)[通俗易懂]
select * from orders order by (mark+0) desc
全栈程序员站长
2022/09/01
1.4K0
mysql中字符转数字,MYSQL字符数字转换为数字「建议收藏」
例如:将user表中的uid 进行排序,可uid的定义为varchar,可以这样解决
全栈程序员站长
2022/08/23
1.9K0
mysql中字符串转数字「建议收藏」
比如以字符串111为例, 方法一:SELECT CAST(‘111’ AS SIGNED); 方法二:SELECT CONVERT(‘111’,SIGNED); 或者 SELECT CONVERT(‘111’, decimal(10,5)); 方法三:SELECT ‘111’+0;
全栈程序员站长
2022/09/02
9860
当Python字符串遇上MySQL
学习的时候我喜欢对比,MySQL和Oracle比,Python和MySQL比,总能有一些收获,也有了新的理解。 今天整理这部分内容的时候,我发现Python和MySQL还是有很多相似之处。学习一门语言,一个数据库,字符串的处理都是一个相对重要的部分,所以我决定对比一下两者的差别。 下面的演示会一边Python,一边MySQL,所以按照这个思路来看就不会感觉突兀了。 转义字符 >>> print '\\' \ mysql> select '\\'; +---+ | \ | +---+ | \ | +
jeanron100
2018/03/21
8070
当Python字符串遇上MySQL
理解 MySQL 中的数字类型
存储字符串时指定的类型 VARCHAR(50) 中可接收一个数字作为长度,其实除了字符串类型,数字类型也是可指定该参数的,比如 INT(10),BIGINT(20)。假设后续讨论中这个参数使用字母 M 来表示,即上面提到的。该参数被用在不同类型上时,其表示的意思不一样。
星哥玩云
2022/08/18
2.1K0
MySQL 字符串与时间操作函数
表分区是将⼀个表的数据按照⼀定的规则⽔平划分为不同的逻辑块,并分别进⾏物理存储, 这个规则就叫做分区函数
王瑞MVP
2022/12/28
1.2K0
数据库MySQL-数据类型
整形支持显示宽度,显示宽带是最小的显示位数,如int(11)表示整形最少用11位表示,如果不够位数用0填充。显示宽度默认不起作用,必须结合zerofill才起作用。
cwl_java
2020/03/27
2K0
MySQL字符串转数字三种方式
如果按照"T+数字"中的"数字"排序,常规的操作order by c1,执行是错误的,实际上按照字符串的ASCII排序的,
bisal
2023/04/27
9910
MySQL字符串转数字三种方式
字符串和时间转换sql「建议收藏」
当前时间:sysdate – dual (Oracle中的一张内部表,只有一行一列,一般用作特定查询)
全栈程序员站长
2022/08/22
1.5K0
正则表达式 - 匹配 Unicode 和其他字符
      有时我们需要匹配 ASCII 范围之外的字符。现在已经有了可以表示超过10万个字符的Unicode 标准(http://www.unicode.org)。然而,Unicode 也没有完全舍
用户1148526
2023/05/11
3K0
正则表达式 - 匹配 Unicode 和其他字符
MySQL中的float和decimal类型有什么区别
decimal 类型可以精确地表示非常大或非常精确的小数。大至 1028(正或负)以及有效位数多达 28 位的数字可以作为 decimal类型存储而不失其精确性。该类型对于必须避免舍入错误的应用程序(如记账)很有用。
全栈程序员站长
2022/07/08
2.4K0
[900]mysql字符串数字互转
最简单的方式就是直接在字符串后面+0,就相当于直接把字符串转为数字类型了,下面可以看一下具体的操作,可以看到通过+0操作,成功将两个字符串转化为了数字,并得到了相加后的结果。
全栈程序员站长
2022/08/31
8620
技术分享 | MySQL 命令行一则诡异问题分享
这位网友对 MySQL 官方手册里的 hex 和 unhex 函数有些疑问: 自己实验结果和手册中给的结果有些差异。
爱可生开源社区
2022/04/06
3110
mysql字符串和数字的互相转换
1. 最简单的方式就是直接在字符串后面+0,就相当于直接把字符串转为数字类型了,下面可以看一下具体的操作,可以看到通过+0操作,成功将两个字符串转化为了数字,并得到了相加后的结果。
全栈程序员站长
2022/09/02
2K0
mysql字符串转数字解决办法
2.使用函数,这里的type可以为:浮点数 : DECIMAL 、整数 : SIGNED、无符号整数 : UNSIGNED
全栈程序员站长
2022/09/02
3120
相关推荐
第01期:MySQL 数据类型的艺术
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文