[英]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
其他选择(如Status
) Status
。 实际上,大多数数据库不允许您执行此操作。 有人认为mysql完全允许这种类型的查询是一个错误/错误的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.