我有这些记录:
Order
----------
id amount
1 10
2 NULL
3 20
如果不存在,我想设置
amount
到-1
,下一步与-1
比较。我写这个:
SELECT
id,
COALESCE(o.amount, -1) AS amount2
FROM Order o
WHERE amount2 = -1
但返回此错误:
#1054 - Unknown column 'amount2' in 'where clause'
我想退货:
Order
----------
id amount2
2 -1
最佳答案
不能在WHERE
子句中使用列别名。
试试这个:
SELECT
id,
COALESCE(o.amount, -1) AS amount2
FROM Order o
WHERE COALESCE(o.amount, -1) = -1
可以在查询选择列表中使用别名来为列提供
不同的名字。您可以在group by、order by或having中使用别名
参考本栏的条款
引自此处:http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html