sql >> Database teknologi >  >> RDS >> Mysql

HVOR vs AT HAVE

Hvorfor er det, du skal placere kolonner, du selv opretter (f.eks. "vælg 1 som tal") efter HAVING og ikke WHERE i MySQL?

WHERE anvendes før GROUP BY , HAVING anvendes efter (og kan filtrere på aggregater).

Generelt kan du referere til aliaser i ingen af ​​disse klausuler, men MySQL tillader henvisning til SELECT niveaualiasser i GROUP BY , ORDER BY og HAVING .

Og er der nogle ulemper i stedet for at gøre "WHERE 1" (at skrive hele definitionen i stedet for et kolonnenavn)

Hvis dit beregnede udtryk ikke indeholder nogen aggregater, skal du sætte det i WHERE klausul vil højst sandsynligt være mere effektiv.



  1. Sådan defineres en auto-inkrementer primær nøgle i SQL Server

  2. Konstruktion af en datamodel for et parkeringspladsstyringssystem

  3. Sådan finder du UTF-8-tegn i en Latin1-kodet kolonne - MySQL

  4. SQL Server 2016:Opret et login