Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - SELECIONE COMO em WHERE


Primeiro, você não pode usar ALIAS no WHERE cláusula. Você deve estar usando a coluna,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
FROM   users 
WHERE  SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'

O motivo é o seguinte:a ordem de operação é SQL,
  • cláusula FROM
  • cláusula WHERE
  • Cláusula GROUP BY
  • cláusula HAVING
  • cláusula SELECT
  • Cláusula ORDER BY

o ALIAS ocorre no SELECT cláusula que está antes do WHERE cláusula.

se você realmente quiser usar o alias, envolva-o em uma subconsulta,
SELECT *
FROM
    (
        SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val 
        FROM   users
    ) s
WHERE   val  = '15'