我有一個簡單的問題代表,在什麼地方和在此查詢
在一些舊的代碼我想出了包含查詢:
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'值之外的記錄。 –