Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - SELECT AS dans WHERE

Tout d'abord, vous ne pouvez pas utiliser ALIAS sur WHERE clause. Vous devriez utiliser la colonne,

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

La raison est la suivante :l'ordre des opérations est SQL,

  • Clause FROM
  • Clause WHERE
  • Clause GROUP BY
  • Clause HAVING
  • Clause SELECT
  • Clause ORDER BY

l'ALIAS a lieu sur le SELECT clause qui est avant le WHERE clause.

si vous voulez vraiment utiliser l'alias, encapsulez-le dans une sous-requête,

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