Po pierwsze, nie możesz użyć ALIAS na WHERE klauzula. Powinieneś używać kolumny,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
Powód jest następujący:kolejność działania to SQL,
- klauzula FROM
- klauzula GDZIE
- klauzula GROUP BY
- klauzula HAVING
- klauzula SELECT
- klauzula ORDER BY
ALIAS odbywa się na SELECT klauzula przed WHERE klauzula.
jeśli naprawdę chcesz użyć aliasu, zapakuj go w podzapytanie,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'