Mysql中字段分割字符串( 一行转多行 )
articledata 表中的一条数据
需要的结果
sql 实现代码
SELECT
a.WOSID,
b.help_topic_id as sort,
SUBSTRING_INDEX(
SUBSTRING_INDEX(
a.AUTHOR,
';',
b.help_topic_id + 1
),
';' ,- 1
) AS AUTHOR
FROM
`articledata` AS a
JOIN mysql.help_topic AS b ON b.help_topic_id < (
length(a.AUTHOR) - length(REPLACE(a.AUTHOR, ';', '')) + 1
) where a.wosid= 'WOS:000207816200003'
Substring_index的作用:取得目标字符串左侧第n个分割符左侧的部分,n为负时返回右侧第n个的右部分
help_topic 是数据库mysql的一个表,该表提供查询帮助主题给定关键字的详细内容(详细帮助信息)
help_topic_id 共有504个数值,一般能满足于大部分需求了。