网站制作综述,汕头网站建设方案维护,网站版面设计流程包括哪些,做室内设计的网站有哪些方面From: https://blog.csdn.net/pjymyself/article/details/81668157
有分隔符的字符串拆分 题目要求
数据库中 num字段值为#xff1a; 数据库中 num字段值
实现的效果#xff1a;需要将一行数据变成多行 实现效果 实现的SQL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(7…From: https://blog.csdn.net/pjymyself/article/details/81668157
有分隔符的字符串拆分 题目要求
数据库中 num字段值为 数据库中 num字段值
实现的效果需要将一行数据变成多行 实现效果 实现的SQL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(7654,7698,7782,7788,,,help_topic_id1),,,-1) AS num FROM mysql.help_topic WHERE help_topic_id LENGTH(7654,7698,7782,7788)-LENGTH(REPLACE(7654,7698,7782,7788,,,))1 1 2 3 4 5 6 7 8 9
涉及的知识点
一、字符串拆分 SUBSTRING_INDEXstr, delim, count 参数解说
参数名 解释 str 需要拆分的字符串 delim 分隔符通过某字符进行拆分 count 当 count 为正数取第 n 个分隔符之前的所有字符 当 count 为负数取倒数第 n 个分隔符之后的所有字符。
2. 举例 1获取第2个以“”逗号为分隔符之前的所有字符。
SUBSTRING_INDEX(7654,7698,7782,7788,,,2) 1
获取第2个以“”逗号为分隔符之前的所有字符
2获取倒数第2个以“”逗号分隔符之后的所有字符
SUBSTRING_INDEX(7654,7698,7782,7788,,,-2) 1
获取倒数第2个以“”逗号分隔符之后的所有字符
二、替换函数replace( str, from_str, to_str) 参数解说
参数名 解释 str 需要进行替换的字符串 from_str 需要被替换的字符串 to_str 需要替换的字符串
2. 举例 1将分隔符“”逗号替换为“”空。
REPLACE(7654,7698,7782,7788,,,) 1
将分隔符“”逗号替换为“”空
三、获取字符串长度LENGTH( str ) 参数解说
参数名 解释 str 需要计算长度的字符串
2. 举例 1获取 ‘7654,7698,7782,7788’ 字符串的长度
LENGTH(7654,7698,7782,7788) 1
获取 7654,7698,7782,7788 字符串的长度 实现的SQL解析 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(7654,7698,7782,7788,,,help_topic_id1),,,-1) AS num FROM mysql.help_topic WHERE help_topic_id LENGTH(7654,7698,7782,7788)-LENGTH(REPLACE(7654,7698,7782,7788,,,))1 1 2 3 4 5 6 7 8 9
此处利用 mysql 库的 help_topic 表的 help_topic_id 来作为变量因为 help_topic_id 是自增的当然也可以用其他表的自增字段辅助。
help_topic 表 help_topic 表 实现步骤
Step1首先获取最后需被拆分成多少个字符串利用 help_topic_id 来模拟遍历 第n个字符串。
涉及的代码片段
help_topic_id LENGTH(7654,7698,7782,7788)-LENGTH(REPLACE(7654,7698,7782,7788,,,))1 1 2
实现过程
Step2根据“”逗号来拆分字符串此处利用 SUBSTRING_INDEXstr, delim, count 函数最后把结果赋值给 num 字段。
涉及的代码片段
SUBSTRING_INDEX(SUBSTRING_INDEX(7654,7698,7782,7788,,,help_topic_id1),,,-1) AS num 1
第一步
以”,”逗号为分隔符根据 help_topic_id 的值来截取第n1个分隔符之前所有的字符串。 此处 n1 是因为help_topic_id 是从0开始算起而此处需从第1个分隔符开始获取。
SUBSTRING_INDEX(7654,7698,7782,7788,,,help_topic_id1) 1
eg 当 help_topic_id 0时获取到的字符串 7654 当 help_topic_id 1时获取到的字符串 7654,7698 …以此类推 第二步
以”,”逗号为分隔符截取倒数第1个分隔符之后的所有字符串。
SUBSTRING_INDEX(SUBSTRING_INDEX(7654,7698,7782,7788,,,help_topic_id1),,,-1) 1
eg 根据第一步当 help_topic_id 0时获取到的字符串 7654此时第二步截取的字符串 7654 根据第一步当 help_topic_id 1时获取到的字符串 7654,7698此时第二步截取的字符串 7698 …以此类推 最终成功实现了以下效果 ~
这里写图片描述
注不含分隔符的字符串拆分可参考 MySQL——字符串拆分无分隔符的字符串截取
如果以上有错误的地方希望大家能够指正 ~ 谢谢 ~ 如果你有更好的方法那就赶紧留言分享噢 ~ 谢谢 ~