我有一个包含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