由於某種原因,這不起作用AS選擇:MySQL的 - 在WHERE
select substring(rating, instr(rating,',') +1, +2) as val
from users where val = '15';
給出了這樣的錯誤:ERROR 1054(42S22):在未知列'VAL 'where子句'
如何我做到了嗎?
由於某種原因,這不起作用AS選擇:MySQL的 - 在WHERE
select substring(rating, instr(rating,',') +1, +2) as val
from users where val = '15';
給出了這樣的錯誤:ERROR 1054(42S22):在未知列'VAL 'where子句'
如何我做到了嗎?
首先,您不能在WHERE
條款上使用ALIAS
。你建議立即進行刪除要使用的列,
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15'
的原因如下:操作順序是SQL,
的ALIAS
發生在SELECT
條款,是WHERE
子句之前到位。
,如果你真的想用別名,在子查詢包裹它,
SELECT *
FROM
(
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
) s
WHERE val = '15'
val
沒有定義,它只是它。做一個別名像
SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val
FROM users
WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = 15
如果您發現_ever_你自己不得不處理列的一部分,你的模式是錯誤的。 – paxdiablo