You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么MySQL查询条件中会使用&运算符?

MySQL查询中&符号的作用说明

MySQL中的&是按位与运算符,属于位运算的一种,作用是将两个操作数转换为二进制后逐位进行与运算,只有两个数的对应二进制位都为1时,结果的对应位才会为1,否则为0。

举个简单的运算示例:
执行SELECT 3 & 5;得到的结果是1,计算逻辑如下:

  • 3的二进制表示为 011
  • 5的二进制表示为 101
  • 逐位与运算后得到 001,转换为十进制就是1

这种运算符在查询条件里的常见使用场景是状态掩码判断:

  • 很多业务场景会用单个整数字段存储多个二元状态,每个二进制位对应一个状态开关,比如用permission字段存储用户权限:第1位(对应十进制1)代表允许登录、第2位(对应十进制2)代表允许发布内容、第3位(对应十进制4)代表允许删除内容。
  • 如果要筛选所有拥有发布内容权限的用户,就可以写查询条件WHERE permission & 2 = 2,只要permission字段的第二位为1,按位与2的结果就等于2,符合条件的记录就会被返回。

使用按位与作为查询条件时,无法命中普通字段索引,数据量较大时查询性能较低,不适合用于高频查询的核心业务场景。

内容的提问来源于stack exchange,提问作者Puneet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 12:54:07