Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySql - MIEĆ kontra GDZIE

WHERE służy do wybierania danych w oryginalnych przetwarzanych tabelach.

HAVING służy do filtrowania danych w zestawie wyników wygenerowanym przez zapytanie. Oznacza to, że może odwoływać się do wartości zagregowanych i aliasów w SELECT klauzula.

Na przykład może napisać:

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

To nie zadziałałoby przy użyciu WHERE ponieważ diff jest aliasem, a nie jedną z oryginalnych kolumn tabeli. Zamiast tego możesz napisać:

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

ale wtedy może być konieczne wykonanie wszystkich odejmowań dwukrotnie:raz w celu wybrania i ponownie w celu uzyskania zestawu wyników.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie wpisu do kolumny JSON w postgresie

  2. Konwersja MySQL_TZ()

  3. Jak za pomocą MySQL wybrać pozycję wyniku zapytania w jednym konkretnym wierszu?

  4. Jak ustawić globalny innodb_buffer_pool_size?

  5. SQL:wyszukaj/zamień, ale tylko za pierwszym razem, gdy wartość pojawia się w rekordzie