mysql 字符串拆分行
2021-11-10

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

还能咋办,人肉填坑啊!

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 的用法,将上述的解决方案封装一下:

1
-- todo

参考链接

本文链接:
content_copy https://zxs66.github.io/2021/11/10/mysql-split-string/