为什么我在我的实时服务器上遇到此查询的错误,而不是我的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
答案 0 :(得分:15)
使用聚合函数(例如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 doesn't require complete listing of non-aggregate columns in the GROUP BY
clause by default,但您的实时服务器可能已启用ONLY_FULL_GROUP_BY
选项。