这可能是一个问题,可以在一行中回答,但字面上我已经能够在两小时内找到它。
<?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,所以如果可能的话也要添加它也会非常感激。
答案 0 :(得分:1)
您的列类型为VARCHAR
,因此是字符串 - 不是整数。使用MAX()
时,对它们的处理方式不同。
返回expr的最大值。
MAX()
可能会带一个字符串参数;在这种情况下,它返回最大字符串值。请参见第8.5.1节“MySQL如何使用索引”。 DISTINCT关键字可用于查找expr的不同值的最大值,但是,这会产生与省略DISTINCT相同的结果。
要解决此问题,只需根据您的需要将您的列转换为TINYINT
,SMALLINT
,INT
,BIGINT
或DECIMAL
。
如果您总是拥有一个没有小数的整数,请使用INT
类型之一(最符合您的需求)。
这是here的表格,因此您可以为列选择正确的类型: