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'