[英]PDO return single result, how to return different record from 1 column multiple rows
[英]Return SET from single result as multiple rows
我有一个MySQL 5.5表,其中的列包含SET数据类型。 每个条目的SET列都有0到4个值。 我想编写一条SELECT语句,该语句将为SET中的每个值返回单独的一行。 仅用一条语句就能做到吗?
预先感谢,彼得
编辑
编辑以包括一个示例:
该表的结构非常基本:
在上面的示例中,您可以想象有一个表,其中填充了各种材料(材料),每个表的SET列均包含该材料可以存在的所有状态(状态)。我希望看到该语句返回单独的一行对于材料具有的每个SET值,请复制ID和材料名称。
希望这有助于澄清问题。
如果有20种可能的状态,但一个材料最多只能有4种:
试试这个解决方案:
SELECT
a.material,
a.states
FROM
(
SELECT material, SUBSTRING_INDEX(states,',',1) AS states
FROM settbl
UNION
SELECT material, SUBSTRING_INDEX(SUBSTRING_INDEX(states,',',-3),',',1) AS states
FROM settbl
UNION
SELECT material, SUBSTRING_INDEX(SUBSTRING_INDEX(states,',',-2),',',1) AS states
FROM settbl
UNION
SELECT material, SUBSTRING_INDEX(states,',',-1) AS states
FROM settbl
) a
ORDER BY
a.material
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.