sql >> Databáze >  >> RDS >> Mysql

Můžete použít alias v klauzuli WHERE v mysql?

Můžete použít klauzuli HAVING, která může viz aliasy, např.

 HAVING avg_rating>5

ale v klauzuli where budete muset svůj výraz zopakovat, např.

 WHERE (sum(reviews.rev_rating)/count(reviews.rev_id))>5

ALE! Ne všechny výrazy budou povoleny – použití agregační funkce jako SUM nebude fungovat, v takovém případě budete muset použít klauzuli HAVING.

Z příručky MySQL :

Není přípustné odkazovat na alias sloupce v klauzuli WHERE, protože při provádění klauzule WHERE nemusí být ještě určena hodnota sloupce. Viz Oddíl B.1.5.4 „Problémy s Aliasy sloupců“ .



  1. SQL - Odečtení vyčerpávající hodnoty od řádků

  2. Třídit podle sloupce ASC, ale nejprve hodnoty NULL?

  3. Zastupování adres IPv4/IPv6 v Oracle

  4. OMEZENÍ ZAHRANIČNÍHO KLÍČE SQL:Konečný, snadný průvodce pro nováčky