MySQL错误:在“”附近使用正确的语法

MySQL错误:在“”附近使用正确的语法,mysql,syntax,Mysql,Syntax,我有这个疑问: 并获取以下错误: 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且所有者已

我有这个疑问:

并获取以下错误:

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-未选择空id,所有者与新的相同,因此所有者设置为空 未选择5-4-4 id,所有者不是新所有者,无更改 x=2,3必须更改的ID
y=7新所有者不确定这是您想要的逻辑您有两个案例,而不是一个具有不同备选方案的案例: 选择所有者, 案例 当id为1,2,4时,则为25 其他的 终止 案例 当owner=25时,则为NULL 其他的 终止 来自董事会2


如果不是,则在第二种情况下,您不能使用WHEN,并且可能希望使用If、ELSEIF、ELSE、END If。

在WHEN情况下,您有语法问题,此外,您选择了所有者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

陛下它不再抛出错误。但它不起作用。它什么也不做:D我希望sql做的是:如果行的id在列表x中,那么它应该将所有者设置为y。如果不是,并且所有者已为y,则应将所有者设置为空。因此:id-owner 2-4 3-7 4-7 5-4 x=2,3 y=9结果:id-owner 2-9 3-9 4-NULL 5-4我认为,这个sql不会那么复杂:/提供一些示例数据和预期结果,因为很难猜测和编写查询。请在顶部的帖子中添加一个示例,尝试理解,但仍然无法理解。在伪代码中:$ids\u which\u-should\u change=2,3;foreach$rows as$value{如果$value['id']在$ids_中,那么应该更改$value['owner']=$new_owner;否则如果$value['owner']==$new_owner$value['owner']=NULL;}但是如果我像这样实现它,我需要很多查询,而且速度很慢。。。所以我希望,一个查询也能做到这一点
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