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'