我有一个名为 a
的列和一个名为 b
的列。
我想用 UPDATE ... SET b = ...
查询 b 列来填充,以便它包含 a
设置为的第一位1. 好吧,你可能没看懂,举个例子更容易理解:
a = 2508 = 0x9CC = 0100111001100
b = 4 = 0x4 = 0000000000100
a = 2080 = 0x820 = 0100000100000
b = 32 = 0x20 = 0000000100000
有没有办法在纯 SQL 中执行此操作?
最佳答案
应该这样做:
update your_table
set b = if(a > 0,pow(2,instr(reverse(bin(a)),'1')-1),0);
关于sql - 有没有办法通过 SQL (MySQL) 获取第一个事件位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229960/