在想如何将一个数据拆分成多行前,先去了解一下MySQL里的几个函数
SUBSTRING_INDEX(str,delim,count)函数它里面有三个参数值,分别的作用是:分割字符串、分隔符、计数。
length():字符长度函数
replace():替换函数
内容类似于下图请往下看:
在网上搜索到的思路是利用MySQL自带的mysql数据库中的help_topic这个记录表,这个表是存储 mysql 各种帮助文档目录的,主要因为他有一个从零开始自增的 id 字段,所以采用这张表作为帮助表。其实他不是用来干这个的。
那么讲到这里就直接上答案吧
SELECT mysql.help_topic.help_topic_id,
SUBSTRING_INDEX(
SUBSTRING_INDEX(st.`course_strId`,';',mysql.help_topic.help_topic_id+1),';',-1)
AS courseId
FROM student02 st
JOIN mysql.help_topic ON mysql.help_topic.help_topic_id <
( LENGTH(st.`course_strId`)
- LENGTH(REPLACE(st.`course_strId`,';',''))
+ 1)
WHERE st.student02 = 10
如果有疑问,可以在数据库进行测试,一步一步进行推断执行,你就会明白了,实践是最好的学习成长捷径