代码之家  ›  专栏  ›  技术社区  ›  Andreas Bonini

有没有办法通过SQL(MySQL)获取第一个活动位?

  •  1
  • Andreas Bonini  · 技术社区  · 14 年前

    我有一个专栏叫 a ,以及名为 b

    我想用一个 UPDATE ... SET b = ... 查询b列,使其包含

    a = 2508 = 0x9CC = 0100111001100  
    b = 4    = 0x4   = 0000000000100
    
    a = 2080 = 0x820 = 0100000100000  
    b = 32   = 0x20  = 0000000100000
    

    有没有一种方法可以在纯SQL中实现这一点?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Ike Walker    14 年前

    这应该做到:

    update your_table
    set b = if(a > 0,pow(2,instr(reverse(bin(a)),'1')-1),0);