欢迎大家访问我的网站!

MySQL Max()函数查询错误问题

思博2020-07-22 02:43:15504数据库技术

今天公司自己开发进销存的系统,同事要求新增商品的时候能商品编号能够自动识别,于是我新增了以下的代码

$query=$this->db->query("select max(number) as number from good_list");

$res=$query->result_array();

$data['number'] = $res[0]['number'];

而上面的代码执行后MySQL数据库所取到最大的值为99,我看了数据库最大的值却是855

于是就发现了之前设计数据库的时候MySQL的类型是varchar!

接着我把MySQL语句进行修改为select max(number+0),执行后已经成功显示855,但是感觉+0后期会导致BUG!

所以最后把语句改为SELECT MAX(CAST(number AS UNSIGNED)) AS number FROM good_list;执行后成功!


问题分析:在MySQL种,varchar的字段使用MAX函数进行取最大值查询时,发现取到的值始终是9,不论是否多少最终取到都是9.

原因是max() 是对数字类型求最大,而varchar 则会出现异常。


转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://lxkj.vip/?id=18

相关推荐

网友评论