mysql将某个字段有分隔符号分隔成多行数据

SELECT
a.id,
a. NAME,
substring_index(
substring_index(
a.name,
',',
b.help_topic_id + 1
),
',' ,- 1
) AS name
FROM
a
JOIN mysql.help_topic b ON b.help_topic_id < (
length(a.name) - length(
REPLACE (a.name, ',', '')
) + 1
)

  

a.需要查询的表
b.辅助表:其需要有一个字段为数字类型且数据为连续,从0开始.如mysql.help_topic表中的help_topic_id字段
a表与b表关联
符合a与b表的数据形成迪卡尔积
然后对数据结果进行处理
关联条件
b.help_topic_id < (
length(a.name) - length(
REPLACE (a.name, ',', '')
) + 1
)
表示 辅助表中的help_topic_id的值小于a表中name中的分隔符号,的数量的值
结果字段处理第一个函数

SUBSTRING_INDEX(str,delim,count)
str:要做处理的字符串对象。
delim:处理时用来做标识符的东西。
count:怎么取值。
count是正值:顺着数,标识符第count次出现时在它前面的所有的数据。
count是负值:倒着数,标识符第count次出现时在它后面的所有的数据。

mysql-一行分隔成多行数据的更多相关文章

  1. mysql根据逗号将一行数据拆分成多行数据

    mysql根据逗号将一行数据拆分成多行数据 原始数据 处理结果展示 DDL CREATE TABLE `company` ( `id` ) DEFAULT NULL, `name` ) DEFAULT ...

  2. XML转换成TXT行数据的Java程序

    ZKe ------------------- XML数据的一个块内的所有属性,转换成TXT文件的一行.众所周知XML文件是通过类似HTML的标签进行数据的定义如图所示 属性由id, article, ...

  3. 查看MySQL语句变量了多少行数据

    explain MySQL语句 列如 explain SELECT * FROM 表名 WHERE id=1;

  4. MySQL一次插入多行数据

    CREATE TABLE `viewhistory` ( `viewid` ) NOT NULL AUTO_INCREMENT, `uid` ) NOT NULL, `video` ) NOT NUL ...

  5. SQL 逗号分隔将一行拆成多行

    and number<=len(a.KOrderID) and type=)=',')

  6. sql根据字符将一行拆成多行

    SELECT B.value FROM ( SELECT [value] = CONVERT(xml,'<root><v>' + REPLACE('A,C,D', ',', ' ...

  7. MySQL入门(7)——表数据的增、删、改

    MySQL入门(7)--表数据的增.删.改 插入数据 使用INSERT···VALUES语句插入数据 INSERT语句最常用的格式是INSERT···VALUES: INSERT [LOW_PRIOR ...

  8. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...

  9. Oracle一列的多行数据拼成一行显示字符

    Oracle一列的多行数据拼成一行显示字符   oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数.    www.2cto.com   先介绍:WMSYS.WM_CO ...

随机推荐

  1. 巨好看的xshell配色

    推荐字体Lucida console [FlatUI] text=e5e5e5 cyan(bold)=16a085 text(bold)=ecf0f1 magenta=9b59b6 green=2ec ...

  2. 密码加密与微服务鉴权JWT

    博客学习目标 1.用户注册时候,对数据库中用户的密码进行加密存储(使用 SpringSecurity). 2.使用 JWT 鉴权认证. 一.BCrypt 密码加密 1.常见的加密方式 任何应用考虑到安 ...

  3. JavaScript 获取时间,时间戳

    一. 动态获取js时间 1.方法一:最简单的写法,直接输出时间到页面 <!DOCTYPE html> <html> <head> <title>< ...

  4. 软件-平面设计-CorelDRAW:CorelDRAW

    ylbtech-软件-平面设计-CorelDRAW:CorelDRAW CorelDRAW Graphics Suite是加拿大Corel公司的平面设计软件:该软件是Corel公司出品的矢量图形制作工 ...

  5. HTML5: HTML5 MathML

    ylbtech-HTML5: HTML5 MathML 1.返回顶部 1. HTML5 MathML HTML5 可以在文档中使用 MathML 元素,对应的标签是 <math>...&l ...

  6. Gym 102082B : Arithmetic Progressions

    戳这里看题目吧! 题目大意:给你一个长度为n(2<=n<=5000)的序列,没有重复的数字,序列中每个元素满足(0<=numi<=1e9).求一个最长的数列满足差分值相同(除n ...

  7. 安装graphviz

    环境win10 1. 下载安装包首先进入官网下载msi文件 安装,一路next,不需要注意什么 2.设置环境变量 安装完毕之后,我们需要手动配置环境变量. 找到刚才我们安装地址,进入graphviz, ...

  8. java遇到的问题

    1.java 初始化泛型数组 public static <T> T[] toArray(java.util.List<T> src, Class<T> type) ...

  9. 递归,装饰器,python常用内置方法

    **递归**        def calc(n):            print(n)            if int(n / 2) == 0:  条件判断                r ...

  10. Python可以用于客户端Web开发吗?

    N00b在Python,但我有大量的PHP经验,并希望扩展我的技能. 我知道Python在服务器端执行方面很出色,只是想知道客户端. 解决方案 你看过skulpt吗? http://www.skulp ...