简单的SQL查询给出组函数的无效使用

Cya*_*ime 3 mysql sql mysql-error-1111

任何人都可以告诉我为什么我得到组功能的无效使用以及如何阻止它?

SELECT Name, Message
FROM flux_chat_messages
WHERE id >= ( MAX( id ) -5 )
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)

zer*_*kms 10

你不能用MAX()WHERE.所以将它包装在子查询中:

SELECT Name, Message
FROM flux_chat_messages
WHERE id >= (SELECT MAX( id ) - 5 FROM flux_chat_messages)
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)

也许你可能有

SELECT Name, Message
FROM flux_chat_messages
ORDER BY id DESC
LIMIT 5
Run Code Online (Sandbox Code Playgroud)

并在您的程序中反转结果(或使用另一个子查询)