Za prvé, nemůžete použít ALIAS
na WHERE
doložka. Měli byste používat sloupec,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
Důvod je následující:pořadí operací je SQL,
- Klauzule FROM
- klauzule WHERE
- Klauzule GROUP BY
- Klauzule HAVING
- klauzule SELECT
- Klauzule ORDER BY
ALIAS
probíhá na SELECT
klauzule, která je před WHERE
doložka.
pokud opravdu chcete použít alias, zabalte jej do dílčího dotazu,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'