lau*_*kok 3 php mysql sql group-by mysql-error-1140
为什么我在我的实时服务器上遇到此查询但在我的wamp localhost上没有错误?
SELECT
type as type,
COUNT(*) AS total
FROM page AS p
WHERE p.parent_id = p.page_id
Run Code Online (Sandbox Code Playgroud)
错误信息是,
SQLSTATE [42000]:语法错误或访问冲突:1140如果没有GROUP BY子句,则GROUP列(MIN(),MAX(),COUNT(),...)的混合没有GROUP列是非法的
我怎么能绕过这个?
我的localhost返回这个结果,这就是我需要的,
type total
page 16
Run Code Online (Sandbox Code Playgroud)
Mic*_*son 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
Run Code Online (Sandbox Code Playgroud)
至于为什么这在本地工作,而不是在你的实时服务器上; 默认情况下,MySql不要求在GROUP BY子句中完整列出非聚合列,但您的实时服务器可能已ONLY_FULL_GROUP_BY启用该选项.