gpt4 book ai didi

mysql - 我想用数字对一列进行 OR,并根据 Mysql 中的多个条件将其存储回相同的列

转载 作者:行者123 更新时间:2023-11-29 03:24:27 25 4
gpt4 key购买 nike

我有下表,名为 DETAILS。

  • 如果 Flag 是 1 -->00000001//(第一个 LSB 设置在这里)
  • if flag is 2 -->00000010//(此处设置第 2 个 LSB)
  • if flag is 3 -->00000011//(1st,2nd LSB's are set here)
  • if flag is 5 -->00000101//(1st,3rd LSB's are set here)

示例数据:

ID NAME     FLAG(int)         IS_LAST
--------------------------------------
1 sports 5 (0000 0101) 0 //1st,3rd LSB's are set
2 News 11 (0000 1011) 0 //1,2,4 MSB's are set
3 Weather 24 (0001 1000) 1 //4,5 MSB's are set
4 IPL 32 (0010 0000) 0 //6th MSB is set

如果 FLAG 列的第 2 个 LSB 或第 6 个 LSB 或 IS_LAST=1,那么我想将 FLAG 与 64 (0100 0000) 进行或操作,并使用 UPDATE 查询将结果存储回同一个 FLAG 列。

我想要这样的输出:

ID NAME     FLAG(int)                     IS_LAST
-------------------------------------------------
1 sports 5 (0000 0101)(Not updated) 0
2 News 75 (0100 1011)(updated) 0
3 Weather 88 (0101 1000)(updated) 1
4 IPL 96 (0110 0000)(updated) 0

最佳答案

我的 SQL 有一个按位 or 运算符 - | ,所以这只是一个简单的 update 语句:

UPDATE details
SET flag = flag | 64
WHERE (flag | 2 > 0) OR
(flag | 32 > 0) OR
(is_last = 1)

关于mysql - 我想用数字对一列进行 OR,并根据 Mysql 中的多个条件将其存储回相同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670973/

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