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

Jaka jest różnica semantyczna między GDZIE a MIEĆ?

HAVING operuje na podsumowanym wierszu - WHERE działa na całej tabeli przed GROUP BY jest stosowany. (Nie możesz umieścić GROUP BY na bok, HAVING jest klauzulą ​​zarezerwowaną do użytku z GROUP BY - pomijając GROUP BY nie zmienia ukrytej akcji, która ma miejsce za kulisami).

Należy również zauważyć, że z tego powodu WHERE może używać indeksu, gdy HAVING Nie mogę. (W super trywialnych niezgrupowanych zestawach wyników można teoretycznie użyć indeksu dla HAVING , ale nigdy nie widziałem optymalizatora zapytań zaimplementowanego w ten sposób).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja KnexJS z powiązanymi danymi nasion

  2. Jak przesyłać i pobierać pliki PHP i MySQL

  3. Uzyskaj rekordy z najwyższym/najmniejszym <cokolwiek> na grupę

  4. Jak uzyskać dane z ostatniego miesiąca w MySQL?

  5. MySQL - Ustaw domyślną wartość pola jako funkcję konkatenacji ciągów