我有一個包含SET數據類型的列的MySQL 5.5表。每個條目對於SET列具有0到4個值。我想寫一個SELECT語句,它將爲SET中的每個值返回一個單獨的行。這是可能的一個單一的聲明?從單個結果返回SET作爲多行
由於提前, 彼得
EDIT
被修改成包括例如:
表結構是非常基本的:
- INT(6)UNSIGNED PRIMARY KEY(id)
- VARCHAR(20)UNIQUE IN DEX(材料)
- SET(「固」,「液體」,「氣體」,「血漿」)(狀態)
在上面的例子可以想像具有填充了各種材料的表(材料)和每個SET列包含所有材料可以存在的狀態(狀態)。我希望看到該語句爲材料所具有的每個SET值返回一個單獨的行,並複製該ID和材料名稱。
希望能幫助澄清事情。
請問'SELECT ... WHERE set_col& 1 UNION ALL SELECT ... WHERE set_col&2'等等爲你做詭計嗎? – raina77ow 2012-07-07 23:13:45
SET中有20多個選項,這使得這個解決方案實現起來有點乏味。如果沒有更好的方法去做,我會回到這種方法。 – 2012-07-07 23:23:07
@PeterHanneman,你可以發佈你的表模式以及一些示例數據,以便我們更清楚我們在這裏工作的內容嗎? – 2012-07-07 23:33:58