逆转 GROUP_CONCAT 的影响:拆分串联数据
在 MySQL 中,GROUP_CONCAT 函数将特定列中的多个值组合为单个值,以逗号分隔的字符串。但是,在某些情况下,您可能希望获得相反的效果,即连接的字符串被分解回其各个组成部分。
实现拆分的查询
要实现此目的,请使用以下查询:
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n.digit+1), ',', -1) color FROM colors INNER JOIN (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n ON LENGTH(REPLACE(colors, ',' , '')) <= LENGTH(colors)-n.digit ORDER BY id, n.digit
了解详细信息
示例数据和输出
用于示例数据提供:
+----+----------------------+ | id | colors | +----+----------------------+ | 1 | Red,Green,Blue | | 2 | Orangered,Periwinkle | +----+----------------------+
查询的输出将是:
+----+------------+ | id | colors | +----+------------+ | 1 | Red | | 1 | Green | | 1 | Blue | | 2 | Orangered | | 2 | Periwinkle | +----+------------+
以上是如何反转MySQL的GROUP_CONCAT以分离串联数据?的详细内容。更多信息请关注PHP中文网其他相关文章!