sql >> Base de Datos >  >> RDS >> Mysql

MySQL - SELECCIONE COMO en DONDE

Primero, no puedes usar ALIAS en WHERE cláusula. Deberías estar usando la columna,

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

La razón es la siguiente:el orden de operación es SQL,

  • cláusula FROM
  • cláusula WHERE
  • cláusula GROUP BY
  • cláusula HAVING
  • cláusula SELECT
  • cláusula ORDER BY

el ALIAS tiene lugar en el SELECT cláusula que está antes de WHERE cláusula.

si realmente desea utilizar el alias, envuélvalo en una subconsulta,

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