我的桌子上有这样的值
post_id name
1 a,b
2 a,b,d
3 c,d
如何把它带到
post_id name
1 a
1 b
2 a
2 b
2 d
3 c
3 d
提前致谢
答案 0 :(得分:0)
尝试这样的事情:
SELECT
post_id,
SUBSTRING_INDEX(SUBSTRING_INDEX(name, ',', n.digit+1), ',', -1) name
FROM
mytable
INNER JOIN
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
ON LENGTH(REPLACE(name, ',' , '')) <= LENGTH(name)-n.digit
ORDER BY
post_id,
n.digit
您可以将name
字段上的最大连接数用于通过以下查询动态生成INNER JOIN
子句:
select MAX(length(name) - length(replace(name, ',', ''))) as numOfConcate