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'