首页 > 解决方案 > 理解 MySQL where 子句中的 & 运算符

问题描述

我正在尝试解决 MySQL 中的编程问题。我有下表。

在此处输入图像描述

我想获取以“阅读”和“绘画”为兴趣的人的姓名。

解决方案给出的可能结果之一如下。

SELECT name
    FROM people_interests
    WHERE interests & 1 AND interests & 8
    ORDER BY name

但是,我不明白为什么这个查询在这里有效。有人可以解释为什么这样做以及&操作员在这里做什么吗?

标签: mysqlsqlbitwise-and

解决方案


这很奇怪。我怀疑其目的是向您介绍setMySQL 中的数据类型。文档在这里

这很奇怪的原因是列中的分号。集合通常使用逗号作为分隔符——这是记录在案的分隔符,我认为没有任何方法可以更改它们。

也就是说,通常不建议使用套装,原因如下:

  • 它们特定于 MySQL。
  • 它们受限于可以存储在集合中的值的数量。
  • 它们可能会造成混淆,因为它们混淆了字符串、整数和位位置。

在某些特定情况下,它们可能很有用,但大多数数据库在没有它们的情况下也能做得很好。


推荐阅读