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

Kan du bruge et alias i WHERE-sætningen i mysql?

Du kan bruge en HAVING-sætning, som kan se aliasserne, f.eks.

 HAVING avg_rating>5

men i en where-klausul skal du gentage dit udtryk, f.eks.

 WHERE (sum(reviews.rev_rating)/count(reviews.rev_id))>5

MEN! Ikke alle udtryk vil være tilladt - at bruge en aggregeringsfunktion som SUM vil ikke fungere, i så fald skal du bruge en HAVING-sætning.

Fra MySQL-manualen :

Det er ikke tilladt at henvise til acolumn alias i et WHERE-udtryk, fordi kolonneværdien muligvis endnu ikke er bestemt, når WHERE-udtrykket udføres. Se afsnit B.1.5.4,"Problemer med Kolonnealiaser” .



  1. SQLite returnerede en fejlkode på 14

  2. Sådan løses ude af stand til at skifte kodningsfejlen, når du indsætter XML i SQL Server

  3. Oracle PL/SQL:Dynamisk SQL-eksempel ved hjælp af Execute Immediate

  4. Konverter 'datetime2' til 'smalldatetime' i SQL Server (T-SQL-eksempler)