Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - WÄHLEN SIE ALS in WO

Erstens können Sie ALIAS nicht verwenden auf WHERE Klausel. Sie sollten die Spalte verwenden,

SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
FROM   users 
WHERE  SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'

Der Grund ist folgender:Die Operationsreihenfolge ist SQL,

  • FROM-Klausel
  • WHERE-Klausel
  • GROUP BY-Klausel
  • HAVING-Klausel
  • SELECT-Klausel
  • ORDER BY-Klausel

der ALIAS erfolgt auf der SELECT -Klausel, die vor dem WHERE steht Klausel.

Wenn Sie den Alias ​​wirklich verwenden möchten, schließen Sie ihn in eine Unterabfrage ein,

SELECT *
FROM
    (
        SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
        FROM   users
    ) s
WHERE   val  = '15'