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

MySql – MÍT vs KDE

WHERE se používá k výběru dat v původních zpracovávaných tabulkách.

HAVING se používá k filtrování dat v sadě výsledků, která byla vytvořena dotazem. To znamená, že může odkazovat na agregované hodnoty a aliasy v SELECT doložka.

Můžete například napsat:

SELECT t1.val - t2.val diff
FROM t1 JOIN t2 ON (some expression)
HAVING diff > 10

Toto by nefungovalo pomocí WHERE protože diff je alias, nikoli jeden z původních sloupců tabulky. Místo toho můžete napsat:

SELECT t1.val - t2.val diff
FROM t1 JOIN t2 ON (some expression)
WHERE t1.val - t2.val > 10

ale pak možná bude muset provést všechna odečítání dvakrát:jednou pro výběr a znovu pro vytvoření výsledné sady.



  1. Zvyšování laťky správy MySQL, MariaDB, PostgreSQL a MongoDB

  2. Získejte součet sloupce MySQL v PHP

  3. Mysql select s podmíněnou logikou

  4. Eliminace MySQL Split-Brain v multi-cloudových databázích