我有一个名为a
的列和一个名为b
的列。
我想在b列填充UPDATE ... SET b = ...
查询,以便它包含a
设置为1的第一位。好吧,你可能不明白,它更容易通过一个例子来理解:
a = 2508 = 0x9CC = 0100111001100
b = 4 = 0x4 = 0000000000100
a = 2080 = 0x820 = 0100000100000
b = 32 = 0x20 = 0000000100000
有没有办法在纯SQL中执行此操作?
答案 0 :(得分:2)
这应该这样做:
update your_table
set b = if(a > 0,pow(2,instr(reverse(bin(a)),'1')-1),0);