首页 > 解决方案 > SELECT * FROM `message` WHERE `read_status` =0 AND `reciever` = 'admin-1' GROUP BY `message_thread_code`

问题描述

你能帮我解决这个问题吗?

SELECT * FROM `message` 
WHERE `read_status` =0 AND `reciever` = 'admin-1' GROUP BY `message_thread_code`

SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“3434_decu.message.message_id”;这与 sql_mode=only_full_group_by 不兼容

标签: mysqldatabase

解决方案


您的查询不包含任何聚合列,因此GROUP BY没有任何意义——mysql 解析器不知道如何处理它。(ONLY_FULL_GROUP_BY错误不完全是问题。)

因此,例如,如果您尝试计算满足条件的行,您将使用:

SELECT COUNT(*) FROM message 
WHERE read_status =0 AND reciever = 'admin-1' 
GROUP BY message_thread_code

如果您只想返回过滤后的列表,请不要使用GROUP BY

SELECT * FROM message WHERE read_status =0 AND reciever = 'admin-1' 

如果没有,请尝试编辑您的问题以指示您希望收到的输出。


推荐阅读