我需要从 mysql 表中的一个特定列中找到最大值,其中另一列的值等效于某个值。但是,通过我正在使用的查询,我不断收到一条显示 SQL 错误的消息。我的查询如下:
SELECT MAX(message_id) AS top_message HAVING(child_id) = '".$message_id[$i]."'
有什么建议么?
您还缺少一个表名:
SELECT MAX(message_id) AS top_message FROM tablename WHERE child_id = '".$message_id[$i]."'
您应该使用WHERE
代替HAVING
子句:
SELECT MAX(message_id) AS top_message
FROM tablename
WHERE child_id = '".$message_id[$i]."'
当你有一个聚合条件时使用 onlyHAVING
子句。
您需要一个 from 子句和一个 where 子句。have 子句用于组过滤器。您没有 group by 子句,因此没有理由编写 having 子句。如果您要从中选择的表称为“MyTable”,那么您的查询如下:
SELECT MAX(message_id) AS top_message
FROM MyTable
WHERE child_id = '".$message_id[$i]."'
请注意,不需要 child_id 周围的括号。请阅读 SQL 和 MySQL 教程以获取更多信息,您的生活会轻松很多。