Mysql
 sql >> Base de données >  >> RDS >> Mysql

OÙ vs AVOIR

Pourquoi avez-vous besoin de placer les colonnes que vous créez vous-même (par exemple "sélectionnez 1 comme nombre") après HAVING et non WHERE dans MySQL ?

WHERE est appliqué avant GROUP BY , HAVING est appliqué après (et peut filtrer sur les agrégats).

En général, vous ne pouvez référencer des alias dans aucune de ces clauses, mais MySQL permet de référencer SELECT alias de niveau dans GROUP BY , ORDER BY et HAVING .

Et y a-t-il des inconvénients au lieu de faire "WHERE 1" (écrire toute la définition au lieu d'un nom de colonne)

Si votre expression calculée ne contient aucun agrégat, placez-la dans WHERE clause sera probablement plus efficace.