最近看同事在折騰sqlite數據庫,若干業務字段在sqlite數據庫中是按位存儲在一個表的字段裏的,然後同事用了一個看起來很變態的辦法,比如,先找出滿足條件的該物理字段的值的集合,再用in 子句,我看來覺得這個搞法很彆扭,如果數據庫直接支持按位運算就好辦了,查了下mssql,mysql是有的,sqlite居然也是支持的,哈哈哈哈~
參考了: http://blog.chinaunix.net/uid-12664992-id-329608.html
按位AND:&
按位OR:|
按位互斥:^
按位取反:~
eg:UPDATE [AnalogInput] SET [Object_Type]= (15 & 3)<<2;
得到的結果是12.
=================================================
SQLite 有如下二元運算符,根據其優先級從高到低有:
||
* / %
+ -
<< >> & |
< <= > >=
= == != <> IN
AND
OR
以下是支持的一元運算符:
- + ! ~ NOT