2013-02-22 56 views
-1

例子: 我有一個表名任務,並有一個名爲列標誌我想和選擇,然後還加有更新定義

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。

但是,如果它是標誌1 +標誌2(3)結果將是在RESULTinText列的魅力和迷失方向。

+0

雖然在SQL數據庫中存儲位字段的理智與否可以辯論,然而*也存儲文本表示似乎是一個錯誤。爲什麼這應該存儲在數據庫中呢?如果有人確定要回答這個問題,他們幾乎肯定需要知道你正在使用的數據庫系統。 – 2013-02-22 13:40:18

+0

我需要這個,因爲我想通過我的網站上的文本顯示總標誌原因編號並不真正告知用戶。我使用MySQL數據庫。 – b4dm00n 2013-02-22 13:41:26

+0

但是,爲什麼不使用任何中間語言來構建描述,即查詢數據庫並構建網頁的其餘部分?或者(請不要認真對待)爲什麼你不生成全面的HTML而不是僅僅是一串文本? – 2013-02-22 13:44:46

回答

0

如果您只有少數值,則聽起來像MySQL set類型是您正在尋找的。它完全符合你的要求,以有效的方式將值存儲在位表示中,然後允許你將它們作爲字符串檢索。

這最好在documentation中描述。

設置有限制,例如最多隻支持64個元素。就我個人而言,我通常會避免它們,因爲正確的「基於集合」的方法是爲每個值和一個匹配表創建一個單獨的表格。但是,對於一個快速而骯髒的應用程序來說,它可能是正確的。

+0

我所有的標誌和文本列表。 https://www.privatepaste.com/7b2c4229de但如果我需要爲每個文本創建一個列,這將是我想的太多。可以在這裏看到另一個例子http://archive.trinitycore.info/Creature_template_tc2#mechanic_immune_mask – b4dm00n 2013-02-22 14:55:43