mysql根据特定字符将一行数据拆分成多行数据
温馨提示:
本文最后更新于 2022年12月27日,已超过 862 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
mysql根据特定字符将一行数据拆分成多行数据
数据分割sql脚本:
其中 t_account_usage 可以替换成想要分隔的数据库表
其中 account_usage_type 可以替换成 想要分割的字段
select substring_index(
substring_index(u.account_usage_type, ',', b.help_topic_id + 1),
',',
-1
) as account_usage_type
from t_account_usage u
join mysql.help_topic as b
on b.help_topic_id < (
length(u.account_usage_type)
-
length(replace(u.account_usage_type, ',', '')) + 1
);
命令行解释
help_topic
help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数。
需要注意:但是8.0.17版本的只有686条数据,超过这个数字,我们就需要己自定义一张表,可以用做计数的临时表,查询的语句只会用help_topic计数,超出的部分其实都是脏数据
b.help_topic_id < 获取分隔后的总行数
这个语句其实是一个遍历,help_topic_id 从0开始递增到
按照顺序截取,先截取第 n 个分隔符之前的所有字符,再截取字符串最后一位
substring_index
substring_index(str,delim,count)函数:用来截取字符串
参数名称 | 解释 |
---|---|
str | 需要被拆分的字符串 |
delim | 分割符,通过某字符进行拆分 |
count | 当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符。 |
replace
replace( str, from_str, to_str)函数:用来替换字符串
参数名称 | 解释 |
---|---|
str | 需要进行替换的字符串 |
from_str | 需要被替换的字符串 |
to_str | 需要替换的字符串 |
length
length(str):获取字符串的长度
正文到此结束
- 本文标签: mysql
- 本文链接: http://www.ityoulove.com/article/39
- 版权声明: 本文由崔健宇原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权