我需要从mysql表中的一个特定列中找到最大值,其中另一列的值等于某个值。但是,通过我正在使用的查询,我继续收到显示的消息和SQL错误。我的查询如下:
SELECT MAX(message_id) AS top_message HAVING(child_id) = '".$message_id[$i]."'
有什么建议吗?
答案 0 :(得分:4)
您还缺少一个表名:
SELECT MAX(message_id) AS top_message FROM tablename WHERE child_id = '".$message_id[$i]."'
答案 1 :(得分:1)
您应该使用WHERE
代替HAVING
条款:
SELECT MAX(message_id) AS top_message
FROM tablename
WHERE child_id = '".$message_id[$i]."'
如果您有聚合条件,请仅使用HAVING
子句。
答案 2 :(得分:0)
您需要一个from子句和where子句。 having子句用于组过滤器。您没有group by子句,因此没有理由编写having子句。如果要从中选择的表格称为“MyTable”,则查询如下:
SELECT MAX(message_id) AS top_message
FROM MyTable
WHERE child_id = '".$message_id[$i]."'
请注意,不需要围绕child_id进行修复。请阅读SQL和MySQL教程以获取更多信息,您的生活将更加轻松。