MySQLのWHEREではなく、HAVINGの後に自分で作成した列(たとえば、「数値として1を選択」)を配置する必要があるのはなぜですか?
WHERE
GROUP BY
の前に適用されます 、HAVING
後に適用されます(集約でフィルタリングできます)。
一般に、これらの句のどちらでもエイリアスを参照できませんが、MySQL
SELECT
の参照を許可します GROUP BY
のレベルエイリアス 、ORDER BY
およびHAVING
。
また、「WHERE 1」(列名の代わりに定義全体を記述する)を実行する代わりに、欠点はありますか?
計算された式に集計が含まれていない場合は、それをWHERE
に配置します 条項はおそらくより効率的です。