当前位置: 首页 > 知识库问答 >
问题:

MySQL,将真值更改为假,将假值更改为真。怎样[重复]

公孙琛
2023-03-14

我需要在我的mysql数据库中的表中更改列,以便列中当前为true的值更改为false,之前为false的值更改为true。

那么,在:值A:假值B:真之前

之后:值A:真值B:假

我该怎么做?试图为此编写一个液化迁移。我首先想到的是:

更新表设置列A=false,其中列A=true,设置列A=true,其中列A=false;

但我意识到,如果我首先将真值更改为假,那么所有值都将为假,然后MySQL将把所有值从假变为真。显然不是我想要的。

有什么想法吗?

共有2个答案

钮轩昂
2023-03-14

这就是你需要的:

UPDATE tableA SET columnA = NOT columnA;
南门鸿哲
2023-03-14

UPDATE tableA SET columnA = CASE columna WHEN false then  true
ELSE false ENd;

如果你有更多的嵌套条件,扩展条件是没有问题的

 类似资料:
  • 我现在有这个可以用的 我想添加一个条件,在这里我只会出售时,购买是虚假的如下,但它没有工作 为什么它不工作? 有什么建议吗?非常感谢。

  • 问题内容: 我试图在事实发生后修改表使其成为主键列。我尝试了以下SQL,但收到语法错误通知。 我做错什么了吗? 问题答案:

  • 问题内容: 我遇到了这种语法: 这个带有两个点的语法是什么? 在哪里可以找到有关它的信息? 它仅适用于布尔值还是以其他不同方式实现? 问题答案: 是条件运算符。(不只是一部分,整个方法参数是示例中条件运算符的一种用法。) 它通常被称为三元运算符,但这只是其本质的一个方面-具有三个操作数- 而不是其名称。如果在Java中引入了另一个三元运算符,则该术语将变得模棱两可。之所以称为条件运算符,是因为它有

  • 在PostgreSQL(9.4版,pgAdmin3)中,当对具有布尔列的表执行select时,数据输出显示“t”或“f”。我想在不写CASE语句或进行连接的情况下,将布尔值转换为TRUE或FALSE。 顺便说一句,根据PostgreSQL自己的文档,这种行为不是SQL标准。 关键字TRUE和FALSE是首选(符合SQL的)用法。 PS:只有在pgAdmin中使用SQL编辑器时才会发生这种情况。使用

  • 对于scanner对象,方法返回true,而方法返回false,这是怎么回事? 注意:基于输入文件,方法按预期返回结果;似乎没有返回正确的结果。 下面是我正在运行的代码,它创建了以下结果: 以下是我要传递给此扫描仪的文件的实际内容: 以下是我运行代码时在控制台中打印的内容的结尾,包括我无法理解的部分:

  • 如果我想将一个名为“maximum_num”的新列突变到x上,其值为5.1,4.9,4.7等,我该怎么做?(我意识到糟糕的例子,因为这里都是Sepal.Length,但如果最大值每次来自不同的cols) 我想我可以用which.max但不知道如何编织。 我也试过 如何追加包含最大行值的新列? 有dplyr esque的方式吗?对base r也很满意。