这个错误是MySQL数据库在sql_mode
中设置了ONLY_FULL_GROUP_BY
模式时出现的。这个模式要求SELECT查询中所有非聚合列(即没有使用SUM()、COUNT()、AVG()等函数的列)都必须包含在GROUP BY子句中。
错误消息中提到的表达式 #2 of SELECT list
指的是SELECT列表中第二个列(或表达式),而mr_web.menu.menu_parent_guid
则是这个列的名字。由于该列没有出现在GROUP BY子句中,且没有使用聚合函数,所以MySQL无法确定在分组后应如何为每一组选择这个列的值,因此抛出了错误。
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));