För det första kan du inte använda ALIAS
på WHERE
klausul. Du bör använda kolumnen,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
Anledningen är följande:operationsordningen är SQL,
- FROM-sats
- WHERE-sats
- GROUP BY-sats
- HAVING-sats
- SELECT-sats
- ORDER BY-klausul
ALIAS
sker på SELECT
sats som är före WHERE
klausul.
om du verkligen vill använda aliaset, slå in det i en underfråga,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'