MySQL 按位比较
MySQL bitwise comparison
我 mysql 与用户 table 进行了一次投票,其中的答案按位保存。如何使用参考按位找到答案最常见或最不常见的用户?
+------+---------+--+
| User | Answers | |
+------+---------+--+
| A | 1 | |
| B | 5 | |
| C | 10 | |
+------+---------+--+
假设 'reference bitwise' 你的意思是你有另一个值是一个位掩码,你试图与 Answers
列匹配,这样的事情应该为你做。在本例中,我使用“4”作为参考位掩码,使用 myTable
作为您的 table..
的名称
SELECT User, BIT_COUNT(Answers & 4) AS MatchedBits FROM myTable ORDER BY MatchedBits DESC
这个returns:
+------+-------------+
| User | MatchedBits |
+------+-------------+
| B | 1 |
| A | 0 |
| C | 0 |
+------+-------------+
您还可以添加一个 LIMIT 1
子句以仅获取最高结果,但当然这不会告诉您是否有多个最高结果具有相同的匹配位数。
我 mysql 与用户 table 进行了一次投票,其中的答案按位保存。如何使用参考按位找到答案最常见或最不常见的用户?
+------+---------+--+
| User | Answers | |
+------+---------+--+
| A | 1 | |
| B | 5 | |
| C | 10 | |
+------+---------+--+
假设 'reference bitwise' 你的意思是你有另一个值是一个位掩码,你试图与 Answers
列匹配,这样的事情应该为你做。在本例中,我使用“4”作为参考位掩码,使用 myTable
作为您的 table..
SELECT User, BIT_COUNT(Answers & 4) AS MatchedBits FROM myTable ORDER BY MatchedBits DESC
这个returns:
+------+-------------+ | User | MatchedBits | +------+-------------+ | B | 1 | | A | 0 | | C | 0 | +------+-------------+
您还可以添加一个 LIMIT 1
子句以仅获取最高结果,但当然这不会告诉您是否有多个最高结果具有相同的匹配位数。