mysql - 理解 MySQL where 子句中的 & 运算符
问题描述
我正在尝试解决 MySQL 中的编程问题。我有下表。
我想获取以“阅读”和“绘画”为兴趣的人的姓名。
解决方案给出的可能结果之一如下。
SELECT name
FROM people_interests
WHERE interests & 1 AND interests & 8
ORDER BY name
但是,我不明白为什么这个查询在这里有效。有人可以解释为什么这样做以及&
操作员在这里做什么吗?
解决方案
这很奇怪。我怀疑其目的是向您介绍set
MySQL 中的数据类型。文档在这里。
这很奇怪的原因是列中的分号。集合通常使用逗号作为分隔符——这是记录在案的分隔符,我认为没有任何方法可以更改它们。
也就是说,通常不建议使用套装,原因如下:
- 它们特定于 MySQL。
- 它们受限于可以存储在集合中的值的数量。
- 它们可能会造成混淆,因为它们混淆了字符串、整数和位位置。
在某些特定情况下,它们可能很有用,但大多数数据库在没有它们的情况下也能做得很好。
推荐阅读
- .net-core - 如何使用 SSH.NET 从 OpenShift .NET Core POD 连接到远程 SFTP 服务器
- php - 启发式对 PHP 中的任何“类型”技术测量进行排序
- java - 随机颜色网格
- sql - 有没有办法将数据库中的所有表名作为 SP 的参数传递?
- reactjs - 如何在标题中设置按钮
- vue.js - beforeDestroy vue动态组件
- python - 使用列表中的值创建新的 df
- python - 将 ROS 与 pycharm 集成
- xml - 解组时可以在没有专用根元素的情况下组合 XML 子节点吗?
- c++ - 总结 std::integer_sequence 中的元素