如何检查所有具有特定位/标志/掩码的条目

问题描述

基本上,我想知道是否有用于在列中查找位掩码的查询。例如,我想找到带有 0x00200 的每个条目,即使它们可能有多个标志。

解决方法

给定要为特定列查找的 @flag 值,例如 2 表的 npcflag 列中的值 creature_template,请尝试以下操作:

SET @flag = 2;

SELECT `entry`,`name`,`npcflag`
FROM `creature_template` 
WHERE `npcflag` & @flag = @flag;