检查 MySQL 查询中是否设置了标志

Check if flags are set and not set in MySQL query

我有两个标志(64 和 32),我需要检查“MySQL 列值”中是否设置了“64”和“32”(quest_template.Flag) .

quest_template.Flag 列的值为:“824183885”。

因此我使用以下查询:

SELECT * FROM quest_template
WHERE quest_template.ID > 0
AND 64 & quest_template.Flag AND 32 != quest_template.Flag 

目前我遇到的问题是查询只检查是否设置了“64”,但如果未设置“32”则不检查。

查询哪里出错了?

您需要使用& 来屏蔽一个位标志。然后检查它是 0 还是 1.

SELECT * FROM quest_template
WHERE quest_template.ID > 0
AND 64 & quest_template.Flag = 1
AND 32 & quest_template.Flag = 0