出于某种原因,这不起作用:
select substring(rating, instr(rating,',') +1, +2) as val
from users where val = '15';
它给出了这个错误:
ERROR 1054 (42S22): Unknown column ‘val’ in ‘where clause’
解决办法:使用子查询(子查询时记得使用括号() )
首先,您不能在WHERE子句上使用ALIAS.你应该使用这个专栏,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
原因如下:操作顺序是SQL,
FROM子句
WHERE子句
GROUP BY子句
HAVING子句
SELECT子句
ORDER BY子句
ALIAS发生在WHERE子句之前的SELECT子句上.
如果你真的想使用别名,请将其包装在子查询中,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论