嗨,我的 table 上有这样的值
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
提前致谢
最佳答案
尝试这样的事情:
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
关于mysql - 带有逗号分隔值的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37158389/