Erstens können Sie ALIAS
nicht verwenden auf WHERE
Klausel. Sie sollten die Spalte verwenden,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
Der Grund ist folgender:Die Operationsreihenfolge ist SQL,
- FROM-Klausel
- WHERE-Klausel
- GROUP BY-Klausel
- HAVING-Klausel
- SELECT-Klausel
- ORDER BY-Klausel
der ALIAS
erfolgt auf der SELECT
-Klausel, die vor dem WHERE
steht Klausel.
Wenn Sie den Alias wirklich verwenden möchten, schließen Sie ihn in eine Unterabfrage ein,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'