0

我需要根据所有文章的状态(也是位)更新作业的状态(位)。

例如,我有一份工作,其中有以下文章

A: status = 1001
B: status = 1011
C: status = 0010

现在我希望工作状态为 = A OR B OR C = 1011。

有什么方法可以在 MYSQL 中做到这一点,而不必遍历所有文章?

谢谢!

4

1 回答 1

1

与许多问题一样,阅读文档是一个简单的案例:MySQL Bit Functions

但是,让我们在这里直截了当地说一些事情。这些值是位掩码吗?如果是这种情况(我敢肯定),那么B等于A | C,这有点奇怪。通常,位掩码以下列方式工作......

A = 0001
B = 0010
C = 0100
...etc.

通过这种方式,您可以组合值并让位掩码考虑多个选项,因此AC( A | C) 的组合将是0101

位掩码的全部目的是它们可以在一个固定长度的字符串中表示多个值,因此它们是节省空间的。缺点是它们不会产生人类可读的输出,除非你习惯于看The Matrix

另一方面,我可能会走得很远。

但是,为了让您继续前进,我相信您正在寻找以下BIT_OR函数:MySQL GROUP BY (Aggregate) FunctionsOR,它计算并返回expr.

于 2013-01-29T16:37:55.343 回答