由于某些原因,这不起作用:
select substring(rating, instr(rating,',') +1, +2) as val from users where val = '15';
它给出了这个错误:
错误1054(42S22):“ where子句”中的未知列“ val”
那我该怎么办呢?
首先,您不能ALIAS在WHERE子句上使用。您应该使用该列,
ALIAS
WHERE
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
原因如下:操作顺序为SQL,
在ALIAS需要的地方SELECT也就是前子句WHERE子句。
SELECT
如果您确实要使用别名,请将其包装在子查询中,
SELECT * FROM ( SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users ) s WHERE val = '15'