无须建表,实现线上数据库导入外部数据
一、前言:
业务上,我们经常需要往数据库中导入一些外部数据,用来与线上数据对比做查询或者其他用途。
但可惜的是,我们没有线上建表的权限或者建表是一件很麻烦。
今天我来分享一个方法,实现如何把一行逗号隔开的数据,转为一个包含多列的临时表。
二、实践:
原始数据:
好好,学习,天天,向上 (或者1,2,3,4 这样更常用的数据)
预计效果:
包含如上述 4行数据的临时表
sql代码:
SELECT
@rownum := @rownum +1 AS rownum,
substring_index(
substring_index(
a.shareholder,
',',
b.help_topic_id + 1
),
',' ,- 1
) AS shareholder
FROM (SELECT
@rownum := 0) r,
(
SELECT "好好,学习,天天,向上" as shareholder ) a
JOIN mysql.help_topic b ON b.help_topic_id < (
length(a.shareholder) - length(
REPLACE (a.shareholder, ',', '')
) + 1
)