Waarom moet je kolommen die je zelf maakt (bijvoorbeeld "selecteer 1 als nummer") na HAVING plaatsen en niet WAAR in MySQL?
WHERE
wordt toegepast vóór GROUP BY
, HAVING
wordt toegepast na (en kan filteren op aggregaten).
Over het algemeen kunt u in geen van deze clausules naar aliassen verwijzen, maar MySQL
maakt het mogelijk te verwijzen naar SELECT
aliassen op niveau in GROUP BY
, ORDER BY
en HAVING
.
En zijn er nadelen in plaats van "WHERE 1" te doen (de hele definitie schrijven in plaats van een kolomnaam)
Als uw berekende uitdrukking geen aggregaten bevat, plaatst u deze in de WHERE
clausule zal hoogstwaarschijnlijk efficiënter zijn.