![](/img/trans.png)
[英]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.