php – 没有GROUP BY子句时SQL计数返回错误

为什么我在我的实时服务器上遇到此查询但在我的wamp localhost上没有错误

SELECT 
type as type, 
COUNT(*) AS total

FROM page AS p
WHERE p.parent_id = p.page_id

错误信息是,

sqlSTATE[42000]: Syntax error or access violation: 1140 Mixing of
GROUP columns (MIN(),MAX(),COUNT(),…) with no GROUP columns is
illegal if there is no GROUP BY clause

我怎么能绕过这个?

我的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 doesn’t require complete listing of non-aggregate columns in the GROUP BY clause by default,但您的实时服务器可能已启用ONLY_FULL_GROUP_BY选项.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...