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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [摘]UML学习一:标准建模语言UML的内容

    [摘]UML学习一:标准建模语言UML的内容

    2021年7月24日
    50
  • BGP AnyCast

    BGP AnyCast什么是BGPAnyCast?BGPanycast就是利用一个(多个)as号码在不同的地区广播相同的一个ip段。利用bgp的寻路原则,短的aspath会选成最优路径(bgp寻路原则之n),从而优化了访问速度。其实bgpanycast是不同服务器用了相同的ip地址。阿里的DNS就是使用了BGPAnyCast“其实bgpanycast是不同服务器用了相同的ip地址…

    2022年5月24日
    58
  • JAVA基本框架搭建(Maven,jetty,Joda-time,junit)

    JAVA基本框架搭建(Maven,jetty,Joda-time,junit)

    2021年5月11日
    119
  • SSH简介及两种远程登录的方法「建议收藏」

    SSH简介及两种远程登录的方法「建议收藏」目录SSH的安全机制SSH的安装启动服务器的SSH服务SSH两种级别的远程登录SSH的高级应用SecureShell(SSH)是由IETF(TheInternetEngineeringTaskForce)制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,…

    2022年6月20日
    28
  • MATLAB 2018b 安装与简介

    MATLAB 2018b 安装与简介matlab2018b安装教程该版本是mathworks官方开发的新版本的商业数学软件,可以帮助用户不仅仅将自己的创意停留在桌面,还可以对大型数据集运行分析,并扩展到群集和云。另外matlab代码可以与其他语言集成,使您能够在Web、企业和生产系统中部署算法和应用程序。与matlab2018a相比,matlab2018b拥有更多数据分析、机器学习和深度学习选项,并且速度比以往更快。其亮点…

    2022年6月10日
    89
  • 希尔伯特黄变换信号处理_希尔伯特变换后频谱图

    希尔伯特黄变换信号处理_希尔伯特变换后频谱图希尔伯特黄变换(Hilbert-Huang)包括两部分工作,分别是经验模态分解(EMD)和希尔伯特变换(HT)。经验模态分解:找到信号x(t)的极大值和极小值,通过三次样条拟合得到上、下包络线,计算其均值得m1(t). 得到第一个分量,检擦其是否满足模态分量的条件:①得极大值点与过0点数量相差不超过1个;②的上、下包络线均值恒为0。如不满足,重复操作1、2直至得到满足模态函数…

    2022年10月14日
    0

发表回复

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

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