我想在Mysql中创建一个或一个带有数字的列,并基于多个条件将其存储回相同的列中

我想在Mysql中创建一个或一个带有数字的列,并基于多个条件将其存储回相同的列中,mysql,Mysql,我有下表叫做详细信息 如果标志为1-->0000000 1/(此处设置第一个LSB) 如果标志为2-->000000 10/(此处设置第二个LSB) 如果标志为3-->000000 11/(此处设置了第一个、第二个LSB) 如果标志为5-->00000101/(此处设置了第一个、第三个LSB) 样本数据: ID NAME FLAG(int) IS_LAST -------------------------------------- 1 sports 5 (0

我有下表叫做详细信息

  • 如果标志为1-->0000000 1/(此处设置第一个LSB)
  • 如果标志为2-->000000 10/(此处设置第二个LSB)
  • 如果标志为3-->000000 11/(此处设置了第一个、第二个LSB)
  • 如果标志为5-->00000101/(此处设置了第一个、第三个LSB)
样本数据:

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
如果标志列的第二个LSB或第六个LSB或是_LAST=1,那么我想使用UPDATE query或64(0100 0000)或标志,并将结果存储回同一标志列

我希望输出如下:

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有一个按位
运算符-,因此这只是一个简单的
更新
语句:

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