检查 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
我有两个标志(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