-1

例: 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 になり、混乱します。

4

1 に答える 1

0

少数の値しかない場合は、MySQLsetタイプが探しているもののように思えます。値をビット表現で効率的に保存し、それらを文字列として取得できるようにすることで、まさにあなたが望むことを行います。

これについては、ドキュメンテーションで最もよく説明されています。

最大 64 要素しかサポートしないなど、セットには制限があります。個人的には、通常はそれらを避けています。適切な「セットベース」のアプローチは、各値と一致テーブルを含む個別のテーブルを持つことだからです。ただし、迅速で汚れたアプリケーションの場合、それはちょうどいいことかもしれません.

于 2013-02-22T14:27:51.343 に答える