为什么在我的实时服务器上而不是在我的wamp localhost上出现此查询错误?
SELECT
type as type,
COUNT(*) AS total
FROM page AS p
WHERE p.parent_id = p.page_id
错误消息是
SQLSTATE[42000]:语法错误或访问冲突:1140混合GROUP列(MIN()、MAX()、COUNT()…)没有GROUP列的如果没有GROUP BY子句,则为非法
我该怎么做?
我的localhost返回这个结果,这正是我所需要的,
type total
page 16
使用聚合函数(如COUNT
)时,需要包含GROUP BY
子句。
SELECT
type as type,
COUNT(*) AS total
FROM page AS p
WHERE p.parent_id = p.page_id
GROUP BY type
至于为什么这在本地有效,但在您的实时服务器上无效;默认情况下,MySql不需要在GROUP BY
子句中完整列出非聚合列,但您的实时服务器可能已打开ONLY_FULL_GROUP_BY
选项。