我有一个简单的问题代表,在什么地方和在此查询
在一些旧的代码我想出了包含查询:
WHERE !(workassignment.flags&1)
我从来没见过用&标志在查询之前。
很明显查询对我有什么影响,但&标志是什么,我为什么要在查询中使用它。
我有一个简单的问题代表,在什么地方和在此查询
在一些旧的代码我想出了包含查询:
WHERE !(workassignment.flags&1)
我从来没见过用&标志在查询之前。
很明显查询对我有什么影响,但&标志是什么,我为什么要在查询中使用它。
&代表按位AND操作(请参阅https://en.wikipedia.org/wiki/Bitwise_operation#AND)。按位和值1(这是什么WHERE语句使用)将返回1时workassignment.flags
最右边的位被设置为1,否则返回0。
所以1 & 1
= 1和0 & 1
= 0
奥克有道理我现在明白了 – botenvouwer
这是一个“按位与”测试 - 它正在查看是否(未)设置workassignment.flags
的最低位。
按位AND:http://dev.mysql.com/doc/refman/5.0/en/bit-functions.html#operator_bitwise-and – sdespont
AFAIK,'&'在SQL中按位进行AND ANDinging值和检查最低有效位是否被设置,这固有地意味着检查值是偶数还是奇数。为什么要使用它将是我们的猜测,但似乎'WHERE'子句将查找除当前'flags'值之外的记录。 –