Mysql max无法正常工作

时间:2015-01-20 09:35:10

标签: php mysql

这可能是一个问题,可以在一行中回答,但字面上我已经能够在两小时内找到它。

<?php 

$con = mysql_connect("localhost","root",'');
if(!$con){
  die('could not connect'.mysql_error());
}
@mysql_select_db("uni",$con) or die("Unable to select db");

$query  = "SELECT MAX(grade) AS HighestPrice from grades";
$res  = mysql_query($query);
if(!$res){
   echo mysql_error();
   exit;
}
else{

while($row = mysql_fetch_assoc($res)) {
    echo "The max num is ". $row['HighestPrice']."this is it";
}
}

我希望它返回的是最大等级表USING max命令。只是要提一下,我想要制作的整个sql命令也需要min,所以如果可能的话也要添加它也会非常感激。

1 个答案:

答案 0 :(得分:1)

您的列类型为VARCHAR,因此是字符串 - 不是整数。使用MAX()时,对它们的处理方式不同。

来自documentation

  

返回expr的最大值。 MAX()可能会带一个字符串参数;在这种情况下,它返回最大字符串值。请参见第8.5.1节“MySQL如何使用索引”。 DISTINCT关键字可用于查找expr的不同值的最大值,但是,这会产生与省略DISTINCT相同的结果。

要解决此问题,只需根据您的需要将您的列转换为TINYINTSMALLINTINTBIGINTDECIMAL

如果您总是拥有一个没有小数的整数,请使用INT类型之一(最符合您的需求)。

这是here的表格,因此您可以为列选择正确的类型:

enter image description here