MySQL将列值的所有值设置为0 exept id 4

Posted

技术标签:

【中文标题】MySQL将列值的所有值设置为0 exept id 4【英文标题】:MySQL Set all values of the column value to be 0 exept id 4 【发布时间】:2020-07-10 14:59:01 【问题描述】:

我想将除 id 4 之外的列值的所有值设置为 0。是否可以在一个查询中执行此操作?

我想要这样的东西:

UPDATE table 
SET value = 0 
WHERE id != 4 and SET value = 1 WHERE id = 4

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

将值设置为等于id = 4,这是一个布尔表达式,如果是true,则计算结果为1,如果是false,则计算结果为0

UPDATE table SET value = (id = 4)

【讨论】:

【参考方案2】:

使用case 表达式:

update mytable
set value = case id when 4 then 1 else 0 end

【讨论】:

【参考方案3】:

您也可以使用 if 语句。如果 id = 4 为真,则设置值 = 1,否则设置值 = 0。希望这对您有所帮助。

Update table set value = if(id=4, 1,0)

【讨论】:

【参考方案4】:

UPDATE 表 SET (value = 0 WHERE id != 4 ),(value = 1 WHERE id = 4)

【讨论】:

至少您之前的(现在已删除的答案)包含有效的 sql 代码。您当前的代码在语法上是错误的。 另外,无需删除答案并发布新答案。只需单击答案底部的编辑并进行所需的任何更改。 欢迎来到 ***!要检查您的 SQL 代码,您可以尝试使用在线网站,例如:en.rakko.tools/tools/36(然后使用Edit 命令解决您的问题

以上是关于MySQL将列值的所有值设置为0 exept id 4的主要内容,如果未能解决你的问题,请参考以下文章

根据 NaN 将列值替换为 0 或 1 [重复]

Oracle Query - 将列值作为多个值的列标题

需要将列值求和到相同的 rowno

将列值显式设置为null SQL Developer

如何将列值分隔为列名?

将列值显式设置为空 SQL Developer