美文网首页
MySQL查询结果集字符串操作之多行合并与单行分割

MySQL查询结果集字符串操作之多行合并与单行分割

作者: 随风_d6a2 | 来源:发表于2021-11-12 00:42 被阅读0次

我们在做项目写sql语句的时候,是否会遇到这样的场景,就是需要把查询出来的多列,按照字符串分割合并成一列显示,或者把存在数据库里面用逗号分隔的一列,查询分成多列呢,常见场景有,文章标签,需要吧查询多个标签合并成一列,等,需要怎么去实现呢,这就涉及到MySQL的字符串操作

多行合并

group_concat
场景再现 我想把查询多列数据合并成一列显示用逗号分隔就需要用到group_concat这个函数。

SQL如下:

select dept.deptno,GROUP_CONCAT(emp.ename)
    from dept 
 left join emp ON(dept.deptno = emp.deptno)
where dept.deptno = 10
select dept.deptno,GROUP_CONCAT(emp.ename)
    from dept 
 left join emp ON(dept.deptno = emp.deptno) 
 GROUP BY dept.deptno

单行分割

单行分割我们可以利用一下help_topic,help_topic表是数据库mysql下的一个表。

image

SUBSTRING_INDEX(s, delimiter, number)
返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。

  1. 如果 number 是正数,返回第 number 个字符左边的字符串。
SELECT SUBSTRING_INDEX('a*b*c*d*e','*',3);    ---- a*b*c
  1. 如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1); 

数据:


image.png

SQL:

select a.id, a.username, 
substring_index(substring_index(a.course, '|', b.help_topic_id + 1), '|', -1) course  
from student a JOIN mysql.help_topic b 
ON b.help_topic_id < (length(a.course) - length(REPLACE(a.course, '|', '')) + 1);
image.png

参考:
https://www.cnblogs.com/likaixin/p/11271756.html

相关文章

  • MySQL查询结果集字符串操作之多行合并与单行分割

    前言 我们在做项目写sql语句的时候,是否会遇到这样的场景,就是需要把查询出来的多列,按照字符串分割合并成一列显示...

  • MySQL查询结果集字符串操作之多行合并与单行分割

    我们在做项目写sql语句的时候,是否会遇到这样的场景,就是需要把查询出来的多列,按照字符串分割合并成一列显示,或者...

  • 子查询(嵌套子查询)

    where子句:子查询返回结果为单行单列,单行多列,多行单列(往往使用in,any,all)操作符having子句...

  • 子查询(嵌套子查询)

    where子句:子查询返回结果为单行单列,单行多列,多行单列(往往使用in,any,all)操作符having子句...

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • 数据库常用函数

    MySQL函数分类:单行函数 多行函数 单行函数 特征:1.对单行操作2.每行返回一个结果3.有可能返回值类型与参...

  • MySQL数据库性能优化

    MySQL架构 查询缓存 查询缓存(Query Cache)原理: 缓存SELECT操作或预处理查询的结果集和SQ...

  • php判断SQLite查询结果是否为空

     php操作MySql数据库时,判断查询结果一般用mysql_num_rows($array)得到结果集条数,然后...

  • Oracle基础(第一节)

    关于注释: 1、--:单行注释;2、/* */:多行注释; 关于查询语句 DQL: 数据操作语句 DML:...

  • JDBC

    开发步骤 导入mysql数据库驱动程序jar包 增操作 删除操作 更新操作 查询操作,结果返回的是结果集 习题 对...

网友评论

      本文标题:MySQL查询结果集字符串操作之多行合并与单行分割

      本文链接:https://www.haomeiwen.com/subject/dwdnzltx.html