如何将Group_Concat()结果拆分为不同的列?我不想在用逗号分隔的同一单元格中显示它。
最佳答案
如果您知道定界符,则可以在将SUBSTRING_INDEX包裹在subquery
中之后使用两次。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
FROM (
SELECT GROUP_CONCAT(...) AS SomeColumn
FROM ...
) AS SomeTable
第一个
SUBSTRING_INDEX
从第一个-> n获取字符串第二个
SUBSTRING_INDEX
从第一个-> n-1中删除字符串检查此SQLFiddle示例
在您的情况下,如果您知道列数,那么查询将类似于(假设您有5个用逗号分隔的字符串):
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 1), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 2), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 4), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 5), '.', -1)
FROM (
SELECT GROUP_CONCAT(...) AS SomeColumn
FROM ...
) AS SomeTable
关于mysql - 分割MySQL Group_Concat()的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37983570/