【问题标题】:MYSQL. Need logical operator like andMYSQL。需要像and这样的逻辑运算符
【发布时间】:2014-06-03 11:03:35
【问题描述】:

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

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

  1. 连数 = 128 数据库字段160。mysql的&-operator返回true,就ok了。

  2. 连续数 = 220(4+8+16+64+128)。 数据库字段 = 40 (32+8)。 Mysql &-运算符返回true。没关系,因为在 220 中只呈现 8 位。

【问题讨论】:

  • & 是按位与,不是逻辑运算符。

标签: mysql bitwise-operators


【解决方案1】:

如果您使用conts & field,如果conts 中的任何 位在field 中设置,则为真。要判断conts 中的所有位是否在数据库字段中打开,请使用:

conts & field = conts

例子:

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

【讨论】:

  • 也许我对这个问题的解释是错误的,但在第一个例子中这似乎无济于事。顺便说一句,我的解决方案也不起作用。
  • 看我的例子,我得到了他所有例子想要的答案。
  • 我看你是对的。我没有正确理解 132 和 160 的期望输出是什么
  • 是的,他的第一个例子有点混乱,你必须在字里行间阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多