繁体   English   中英

MySQL在PHP栏中的最大价值

[英]MySQL biggest value in column PHP

我需要获得某一列的最大价值。 这是我编写的代码。

$query = "SELECT type, MAX(ID) FROM sessions GROUP BY Status"; 

$result = mysql_query($con, $query) or die(mysql_error());

// Print out result
while($row = mysql_fetch_array($result)){
echo "The biggest session ID is " .$row['MAX(ID)'];
echo "<br />";
}

我需要在表中获得最大的ID号。 状态只是我认为与ID列中找到最大数字无关的另一列。 我究竟做错了什么?

如果要在表中查找最大ID,则查询应为:

 SELECT max(ID) from sessions;

您的分组依据列将为状态的每个唯一值提供最大ID,如果您按状态分组以获取任何有意义的结果,则还应将其作为选择字段之一。

 SELECT Status, max(ID) from sessions group by Status

将您的MAX(ID)函数调用别名化为查询中的列名;

SELECT type, MAX(ID) AS max_id FROM sessions GROUP BY status

如果要从具有最大ID的特定行获取完整数据,则可以执行以下操作:

 $query = "SELECT type, MAX(ID) 
           FROM sessions 
           WHERE ID = MAX(ID) 
           GROUP BY Status";

状态只是我认为与ID列中找到最大数字无关的另一列。

问题在于MAX()是一个聚合函数,它将根据GROUP BY子句返回每个组的最大ID。 因此,对SELECT type, MAX(ID)然后再按GROUP BY Status没有意义。 如果需要每种类型的最大ID,则需要GROUP BY type

除非在极少数情况下会滥用该功能,否则选择一列(如type )然后再按GROUP BY其他选择(如StatusStatus 实际上,大多数数据库不允许您执行此操作。 有人认为mysql完全允许这种类型的查询是一个错误/错误的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM