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

mysql字符串转数字_mysql字符串转数字小计问题:要求比较’100%’和’95%’的大小实践:mysql>SELECT’100%’>’95%’;+—————-+|’100%’>’95%’|+—————-+|0|+—————-+1rowinset(0.00sec)发现’100%’竟然小于’95%’原因:因为是字…

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

问题:要求比较’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.net/138999.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux安装lib包_linux生成静态库

    linux安装lib包_linux生成静态库前几天手里的智能锁项目,收到产品的建议(命令)说,就是人脸识别成功的时候,不要只显示摄像头捕捉到的图像,要弄个酷炫一点的背景,背景里图片中间有个圆圈,人脸就放到圆圈里也就是类似这样。。当然,这是我思考了好几个小时的结果,开始想不明白要怎么实现,其实想通了也很简单,三个步骤A把背景图像的RGB读出来out_bufB把摄像头采集到的图像读出来(分辨率和背…

    2025年6月19日
    3
  • js对象和jquery对象的区别

    js对象和jquery对象的区别

    2021年10月18日
    40
  • CodeBlocks控制台中文乱码

    CodeBlocks控制台中文乱码中文乱码是个老问题了,涉及乱码的问题无非是编码不统一造成的;涉及编码的地方常见有:1.源文件本身编码2.编译器读取源文件编码3.数据编码(数据库,IO文件等)4.执行输出编码 知道乱码的原因有利于解决乱码问题,这些原因在哪个IDE都是通用的 关于codeblock这款IDE,这里…

    2022年7月26日
    11
  • springboot上传文件到阿里云

    springboot上传文件到阿里云springboot上传文件到OSS前提声明,文章借鉴了https://blog.csdn.net/wonder_dog/article/details/81152307#commentsedit博客,大神在我没有思路的时候提供了最简洁明了的教程,话不多说:写代码吧1.首先依赖:<dependency><groupId>com.aliyun.oss&…

    2022年6月9日
    73
  • due for什么意思_due动词的意思

    due for什么意思_due动词的意思问题描述:在使用实验室服务器安装pytorch的时候报错:ERROR:CouldnotinstallpackagesduetoanOSError:[WinError5]拒绝访问。:‘e:\program\anaconda\envs\dai\lib\site-packages\~.rch\lib\asmjit.dll’Considerusingthe–useroptionorcheckthepermissions.原因分析:原因是由于实验室服务器管理时都是用

    2025年9月7日
    8
  • 如何理解95%置信区间_95的置信区间和90的置信区间

    如何理解95%置信区间_95的置信区间和90的置信区间1.点估计与区间估计首先我们看看点估计的含义:是用样本统计量来估计总体参数,因为样本统计量为数轴上某一点值,估计的结果也以一个点的数值表示,所以称为点估计。点估计虽然给出了未知参数的估计值,但是未给出估计值的可靠程度,即估计值偏离未知参数真实值的程度。接下来看下区间估计:给定置信水平,根据估计值确定真实值可能出现的区间范围,该区间通常以估计值为中心,该区间则为置信区间。2.中心…

    2022年9月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号