MySQL错误:正确使用语法''

时间:2015-03-25 20:04:29

标签: mysql syntax

我有这个查询:

 SELECT owner,
    CASE WHEN id IN (1,2,4) THEN 25
    ELSE 
    CASE WHEN owner = 25 THEN NULL 
    END as owner
    FROM board2

并收到此错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as owner

    FROM board2' at line 9

我的错误是什么?

例:
id - 所有者 - 结果所有者
2 - 4 - 7(已选择ID且所有者已更改
3 - 7 - 7(已选择ID且所有者已更改
4 - 7 - NULL(未选择id,所有者与新的所有者相同,因此所有者设置为NULL
5 - 4 - 4(id未选中,所有者不是新所有者,没有变更

x =(2,3)(必须改变的ids)
y = 7(新主人)

2 个答案:

答案 0 :(得分:0)

不确定这是你想要的逻辑(你有两个CASE,而不是一个有不同的替代品): SELECT所有者,    案件        当id(1,2,4)那么25    其他    结束    案件        当所有者= 25那么空    其他    结束 来自board2

如果没有,那么你不能在第二种情况下拥有WHEN,并且可能想要使用IF,ELSEIF,ELSE,END IF。

答案 1 :(得分:0)

case-when中存在语法问题,此外您选择owner 2次,这也是错误

它应该是

SELECT owner,
CASE 
WHEN id IN (1,2,4) THEN 25
WHEN owner = 25 THEN NULL 
else 'ABC' ---- better to provide else other wise non-matching data will be selected as null, give something as you want
END as `some_other_col_name` --- a different col name since owner is already selected on the top
FROM board2