Skip to content

mysql 字符串拆分行

📅2021/11/11
🏷️mysqlsplit

SQL Server 没有 GROUP_CONCAT,MySQL 没有 STRING_SPLIT。 😔

还能咋办,人肉填坑啊!

大概看了一下网上的解决方案,很多都在推荐使用 SUBSTRING_INDEX(str,delim,count) 函数,join mysql.help_topic 表的自增列来完成。示例如下:

sql
SELECT
    a.id,
    a. NAME,
    SUBSTRING_INDEX(
        SUBSTRING_INDEX(
            a.shareholder,
            ',',
            b.help_topic_id + 1
        ),
        ',' ,- 1
    ) AS shareholder
FROM
    company a
JOIN mysql.help_topic b ON b.help_topic_id < (
    LENGTH(a.shareholder) - LENGTH(
        REPLACE (a.shareholder, ',', '')
    ) + 1
)

emmm,不够优雅,但至少能解决大部分场景问题。

可以参照 SQL Server 中 STRING_SPLIT 的用法,将上述的解决方案封装一下:

sql
-- todo

参考链接