如何在以下mysql查询的where子句中引用“decider”?
SELECT *,
CASE
WHEN (cond1) THEN 1
WHEN (cond2) THEN 2
END as decider
FROM t1,
t2
WHERE cond12
AND decider <> NULL
我试过了,结果出了个
1054: Unknown column in where clause
错误。 最佳答案
使用:
SELECT *,
CASE
WHEN (cond1) THEN 1
WHEN (cond2) THEN 2
ELSE NULL
END as decider
FROM t1,
t2
WHERE cond12
HAVING decider IS NOT NULL
最早的MySQL允许您使用列别名是
GROUP BY
子句您需要使用
IS NULL
或IS NOT NULL
(如果合适的话),因为NULL
不是一个值——它是缺少任何值的占位符,这需要在SQL中进行特殊处理关于mysql - 如何从以下mysql查询的where子句中引用'decider'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6209383/