我想在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)