SQL更新到基于标志字的表?

时间:2011-06-25 02:42:15

标签: sql

我的数据库中有一个字段,每行有一个任意值,我想在此添加X.如果标志字(在此行中保存为int)将第2和第10位设置为true,我只想添加X.是否可以为表中的每一行创建一个SQL语句来执行此操作?或者我是否必须遍历整个表格?

使用MySQL(5.5)

奖励积分问题:我说基于旗帜添加X,但也有缩放因子。例如,基于被解释为短无符号整数的位20-12的值,我真的想分配:

value = value + ('X' * thatShort * (bit2 and bit10));

1 个答案:

答案 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

希望这会回答你的问题。不知道你将如何授予'奖励积分':)。