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

MySQL - SELEZIONA COME in DOVE

Innanzitutto, non puoi usare ALIAS nel WHERE clausola. Dovresti usare la colonna,

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

Il motivo è il seguente:l'ordine delle operazioni è SQL,

  • Clausola DA
  • Clausola WHERE
  • Clausola GROUP BY
  • Clausola HAVING
  • Clausola SELECT
  • Clausola ORDER BY

il ALIAS avviene su SELECT clausola che precede il WHERE clausola.

se vuoi davvero usare l'alias, avvolgilo in una sottoquery,

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