Mysql
 sql >> база данни >  >> RDS >> Mysql

Каква е семантичната разлика между WHERE и HAVING?

HAVING работи върху обобщения ред - WHERE работи с цялата таблица преди GROUP BY приложено е. (Не можете да поставите GROUP BY настрана, HAVING е клауза, запазена за използване с GROUP BY - пропускане на GROUP BY не променя неявното действие, което се случва зад кулисите).

Също така е важно да се отбележи, че поради това WHERE може да използва индекс, докато HAVING не мога. (В супер тривиални негрупирани набори от резултати теоретично бихте могли да използвате индекс за HAVING , но никога не съм виждал оптимизатор на заявки, действително внедрен по този начин).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъквайте редове само когато съществува идентификатор от друга таблица

  2. Защо засегнатите редове връщат 0 при успешно актуализиране/изтриване?

  3. Как мога да съпоставя списък, разделен със запетая, със стойност?

  4. Производителност на MySQL:MySQL/MariaDB индекси

  5. Името на индекса на MySQL и името на външния ключ трябва да са различни за различните таблици?