Ten eerste kunt u ALIAS
. niet gebruiken op de WHERE
clausule. Je zou de kolom moeten gebruiken,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
De reden is als volgt:de volgorde van bewerking is SQL,
- FROM-clausule
- WHERE-clausule
- GROUP BY-clausule
- HAVING-clausule
- SELECT-clausule
- ORDER BY-clausule
de ALIAS
vindt plaats op de SELECT
clausule die vóór de WHERE
. staat clausule.
als je de alias echt wilt gebruiken, stop hem dan in een subquery,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'