3

ライブサーバーではこのクエリでエラーが発生するのに、wamp localhost ではエラーが発生するのはなぜですか?

SELECT 
type as type, 
COUNT(*) AS total

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

エラーメッセージは、

SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1140 GROUP BY 句がない場合、GROUP 列のない GROUP 列 (MIN()、MAX()、COUNT()、...) の混合は違法です

どうすればこれを回避できますか?

私のローカルホストは、私が必要としているこの結果を返します。

type    total
page    16
4

1 に答える 1

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 では、デフォルトで節に非集計列を完全にリストする必要はありませんGROUP BYが、ライブ サーバーではONLY_FULL_GROUP_BYオプションがオンになっている可能性があります。

于 2012-03-22T02:52:10.560 に答える