提问人:PalleKuling 提问时间:11/6/2019 更新时间:11/6/2019 访问量:73
MySQL 按位比较
MySQL bitwise comparison
问:
我有带有一个用户表的 mysql,其中包含以按位方式保存的民意调查的答案。如何通过按位引用找到具有最常见或最不常见答案的用户?
+------+---------+--+
| User | Answers | |
+------+---------+--+
| A | 1 | |
| B | 5 | |
| C | 10 | |
+------+---------+--+
答:
0赞
robsiemb
11/6/2019
#1
假设“按位引用”,您的意思是您有另一个值,该值是您尝试与列匹配的位掩码,这样的东西应该为您完成。在本例中,我使用“4”作为引用位掩码和表的名称。Answers
myTable
SELECT User, BIT_COUNT(Answers & 4) AS MatchedBits FROM myTable ORDER BY MatchedBits DESC
这将返回:
+------+-------------+ | User | MatchedBits | +------+-------------+ | B | 1 | | A | 0 | | C | 0 | +------+-------------+
您还可以添加一个子句来仅获得顶部结果,但当然,这不会告诉您是否有多个顶部结果具有相同的位数匹配。LIMIT 1
评论