MYSQL。需要像和的逻辑运算符

时间:2014-06-03 11:03:35

标签: mysql bitwise-operators

对于where子句,我需要运算符和(&)。如果int字段中的所有位都打开,它会添加到结果集。 & -operator并不总能回答正确答案。

实施例: 1。 Conts = 132.(128 + 4) 数据库字段160.(128 + 32) Mysql&运算符返回true。但是如果只设置128位和4位,我需要它返回true(例如196(128 + 64 + 4)。

  1. Conts = 128 数据库字段160. Mysql& -operator返回true,并且确定。

  2. Conts = 220(4 + 8 + 16 + 64 + 128)。 数据库字段= 40(32 + 8)。 Mysql& -operator返回true。这没关系,因为在220只提供了8位。

1 个答案:

答案 0 :(得分:3)

如果您使用conts & field,则conts中的 field中的任何位都会成立。要确定 all conts中的位是否已在数据库字段中打开,请使用:

conts & field = conts

示例:

+-----------------+
| 132 & 160 = 132 |
+-----------------+
|               0 |
+-----------------+
+-----------------+
| 132 & 196 = 132 |
+-----------------+
|               1 |
+-----------------+
+-----------------+
| 128 & 160 = 128 |
+-----------------+
|               1 |
+-----------------+
+----------------+
| 220 & 40 = 220 |
+----------------+
|              0 |
+----------------+