示例:
UPDATE images set show = 0 where show =1;
UPDATE images set show = 1 where id = $id;
'显示'是一个布尔数0或1,因为只能显示1个图像。 我想用于一个事件,当我使用上面的代码时,会显示错误: " MySQL说:#1064 - 你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法使用" 那么,如何结合上面的编码
答案 0 :(得分:2)
在mysql中show
是reserved word,因此如果您想将其用作字段名称,则需要在其周围添加反引号。
UPDATE images set `show` = 0 where show =1;
UPDATE images set `show` = 1 where id = $id;
我不会将它们合并到一个更新语句中,因为单个更新实际上无法使用索引,所以它不会有效,而这两个更新会。
但是,如果您真的想要,可以将它们组合起来:
UPDATE images SET `show`=if(`show`=1,0,1)
WHERE `show`=1 OR ID=$id;
答案 1 :(得分:0)
试试这个:
UPDATE images SET show = (CASE
WHEN show = 1 THEN 0
WHEN id = $id THEN 1
END) WHERE (show =1 OR id = $id);
答案 2 :(得分:0)
请尝试以下代码。
UPDATE images SET `show` = CASE
WHEN `show` = 1 THEN 0
WHEN id =$id THEN 1
END;
希望这会有所帮助。