我的数据库中有一个字段,每行有一个任意值,我想在此添加X.如果标志字(在此行中保存为int)将第2和第10位设置为true,我只想添加X.是否可以为表中的每一行创建一个SQL语句来执行此操作?或者我是否必须遍历整个表格?
使用MySQL(5.5)
奖励积分问题:我说基于旗帜添加X,但也有缩放因子。例如,基于被解释为短无符号整数的位20-12的值,我真的想分配:
value = value + ('X' * thatShort * (bit2 and bit10));
答案 0 :(得分:3)
在MS SQL中:
update MyTable
set Field1 = Field1 + 'X'
where Field2 & 0x202 = 0x202
[编辑]
value = value (X * (field & 0x1FF800 >> 12) * 0x202)
0x1FF800
- 是从12到20的面具
>> 11
- 将其移位以删除0到12之间的位
由于您按bit2和bit10设置进行过滤,因此(bit2 and bit10)
= 0x202
希望这会回答你的问题。不知道你将如何授予'奖励积分':)。