gpt4 book ai didi

mysql - 翻转 BIT 数据类型的值并使其为 NULL 值 1

转载 作者:行者123 更新时间:2023-11-28 23:31:23 25 4
gpt4 key购买 nike

我有一个这样的表:

// numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(1) |
+---------+------------+
| 1 | 1 |
| 2 | 1 |
| 3 | 0 |
| 4 | NULL |
+---------+------------+

这是我的查询:

UPDATE numbers SET numb = numb ^ b'1';

这是当前输出:

// numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(1) |
+---------+------------+
| 1 | 0 |
| 2 | 0 |
| 3 | 1 |
| 4 | NULL |
+---------+------------+

这是预期输出:

// numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(1) |
+---------+------------+
| 1 | 0 |
| 2 | 0 |
| 3 | 1 |
| 4 | 1 |
+---------+------------+

如您所见,我要做的就是使 1 成为 NULL ^ b'1' 的结果。 (当前结果为 NULL)。我该怎么做?

最佳答案

该任务结合了两个问题:

  • 翻转一下,然后
  • 处理NULL

你可以结合bit-toggling solution从您的其他问答中使用 IFNULL 获取易于阅读的解决方案:

UPDATE numbers SET numb = IFNULL(numb ^ b'1', 1)

这是对您的问题的逐字翻译:

  • “翻转位的值” - numb ^ b'1'
  • “如果 NULL,则设置 1” - IFNULL(..., 1)

关于mysql - 翻转 BIT 数据类型的值并使其为 NULL 值 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com