实施例: 我有一个表名Quest,并有一个名为FLAGS的列
FLAGS = 1 =>TEXT = CHARM
FLAGS = 2 =>TEXT = DISORIENTED
FLAGS = 4 =>TEXT = DISARM
FLags = 536870912 =>TEXT = Saped
等...
我想做这样的SQL查询。
Update quest set RESULTinText = 'TOTALFLAGSINTEXT' WHERE FLAGS = TOTALFLAGS in flag column;
如果flags = 1,那么结果将是 - RESULTinText列中的CHARM。
但如果是FLAGS 1 + Flags 2(3)结果将在RESULTinText列中为CHARM和Disoriented。
答案 0 :(得分:0)
如果您只有少数几个值,那么听起来就像您正在寻找的MySQL set
类型。它完全符合您的要求,在位表示中有效地存储值,然后允许您将它们检索为字符串。
最好在documentation中说明。
集合有一些限制,例如仅支持最多64个元素。我个人通常会避免使用它们,因为正确的“基于集合”的方法是使用每个值和匹配表的单独表。但是,对于快速而肮脏的应用程序来说,它可能是正确的。