Search code examples
mysqlsqlbit-manipulationflagsazerothcore

How do I check for all entries that has a certain bit/flag/mask in them


Basically, I want to know if there is a query for finding bit masks within a column. For example, I want to find every entry with 0x00200 even though they might have several more flags.


Solution

  • Given a @flag value that you want to find for a certain column, for example value 2 from the npcflag column of the creature_template table , try the following:

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