SQLite,独家或.我如何清除旗帜?

5 sql sqlite

要设置一个标志我写SET status=status|?怎么清除标志?通常我写,SET status=status&(-1^?)但^在sqlite中是非法的.我如何清除旗帜或使用独家或?

And*_*mar 7

sqlite似乎没有xor运算符.您可以使用以下方法模拟它:

select (~(a&b))&(a|b)
Run Code Online (Sandbox Code Playgroud)

例如,当用0100(4)掩盖1111(15)时:

select (~(15&4))&(15|4)
Run Code Online (Sandbox Code Playgroud)

答案是1011(11).这样你就可以清除旗帜.

  • 对,那会好得多.xor用于切换不像你说的那样清楚 (3认同)