Mysql使用max获取最大值细节

有些时候在mySql的SQL语句中使用max(),min()获取最大、最小值时,获取到的结果跟预期的结果不一样,这是因为在查找的时候获取字段的字段类型会影响我们获取的结果,比如我现在遇到的这个,就是。我在获取最大值时,按照以往的经验写的sql语句。

select MAX(ord) from table_namewhere state != 2 and branch_code = 1101

但是结果并不是我想要的,最后发现是这个ord时候String类型的,当我转成integer类型再去查时,就能得到我预期的结果。

**

这里有几种方法去转

**

1、利用“+”运算符,语法“‘字符串’ + 0”;

select MAX(ord + 0) from table_name where state != 2 and branch_code = 1101

2、利用cast()函数,语法“cast(‘字符串’ as 数值类型)”;

2.1:取整数:SIGNED

select MAX(CAST(ord as signed)) from table_name where state != 2 and branch_code = 1101

2.2:取无符号整数 : UNSIGNED

select MAX(CAST(ord as UNSIGNED)) from table_name where state != 2 and branch_code = 1101

2.3:浮点数 : DECIMAL

select MAX(CAST(ord as DECIMAL(10,2))) from table_name where state != 2 and branch_code = 1101

3、利用convert()函数,语法“convert(‘字符串’, 数值类型)”

3.1:整数:SIGNED

select MAX(CONVERT(ord,SIGNED)) from table_name where state != 2 and branch_code = 1101

3.2:无符号整数 : UNSIGNED

select MAX(CONVERT(ord,UNSIGNED)) from table_name where state != 2 and branch_code = 1101

3.3:浮点数 : DECIMAL

select MAX(CONVERT(ord,DECIMAL(10,2))) from table_name where state != 2 and branch_code = 1101

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值