在MYSQL中,max()给了我一些奇怪的答案

时间:2018-01-23 11:02:42

标签: php mysql

我在Mysql查询中使用max()。

$sql="SELECT max(`invoice_number`) 
      FROM `order_details` 
      WHERE `financial_year` = '$years' ";

$sql1= $this->db->query($sql)->result_array();
print_r($sql1);

die();

正在发生的奇怪事情是在数据库表中高达10,它显示最大值为10但是当它是11或12或13或14它仍然显示10。 欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

由于字段invoice_numbervarchar,您必须执行此操作才能获得预期结果:

  $sql="SELECT max( cast(`invoice_number` as unsigned) )
  FROM `order_details` 
  WHERE `financial_year` = '$years' ";

另请参阅此处了解更多信息:https://dev.mysql.com/doc/refman/5.7/en/example-maximum-row.html