首页 > 数据库 >mysql逗号分隔的字符串转换为行

mysql逗号分隔的字符串转换为行

时间:2023-09-19 19:22:17浏览次数:48  
标签:为行 topic help 帮助 主题 逗号 mysql id

 

 

SELECT a.id,
substring_index( substring_index( a.code, ',', b.help_topic_id + 1 ), ',',- 1 ) age,a.year
FROM t a
JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.code ) - length( REPLACE ( a.code, ',', '' ) ) + 1 ) 
ORDER BY a.id

 

解析
1.Substring_index的作用:取得目标字符串左侧第n个分割符左侧的部分,n为负时返回右侧第n个的右部分
2.help_topic 是数据库mysql的一个表,该表提供查询帮助主题给定关键字的详细内容(详细帮助信息)
表字段含义:

  • help_topic_id:帮助主题详细信息在表记录中对应的ID
  • name:帮助主题给定的关键字名称。
  • help_category_id:帮助主题类别ID,与help_category表中的help_category_id字段值相等。
  • description:帮助主题的详细信息(这里就是我们通常查询帮助信息真正想看的内容,例如:告诉我们某某语句如何使用的语法与注意事项等)。
  • example:帮助主题的示例信息(告诉我们语句如何使用的示例)。
  • url:该帮助主题对应在MySQL官方在线手册中的URL链接地址。

ps:这条sql语句其实跟help_topic表没有什么关系,仅仅是借用了help_topic表的help_topic_id的值为(0,1,2,...),因此在本数据库中建立一个仅含ID字段的表进行关联,同样可以实现转多行效果

 

参考:

https://blog.csdn.net/wslzjr/article/details/108276502

 

标签:为行,topic,help,帮助,主题,逗号,mysql,id
From: https://www.cnblogs.com/super-chao/p/17715584.html

相关文章

  • Navicat 修改mysql数据库时区【转】
    --查询当前系统时间SELECTnow();--检查MySQL系统时区showvariableslike'%time_zone%';--设置时区setglobaltime_zone='+08:00';--修改mysql全局时区为北京时间,即我们所在的东8区settime_zone='+08:00';--修改当前会话时区flushprivileges;--命令执......
  • Mysql数据库的索引
    1.索引的概念索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加......
  • Mysql数据库的用户管理
    1.用户管理的具体操作1.1新建用户1.2修改用户密码1.3删除用户1.4修改用户名1.5忘记root密码时怎么重置密码1.先修改mysql的配置文件,在/etc/my.cnf下 3.输入命令修改user表中root的密码4.再修改mysql配置文件,改回去,之后重启服务,这样就修改了root用户的密......
  • mysql count()函数
    count(expr)函数的参数expr可以是任意的表达式,该函数用于统计在符合搜索条件的记录总数;count(expr)函数执行效率从低到高排序为:count(非主键字段)<count(主键)<count(1)≈count(*);对于count(1)和count(*),效率相当,建议尽量使用count(*),因为MySQL优化器会选择最小......
  • 2.Mysql存储引擎+数据类型
    日常生活中文件格式有很多中,并且针对不同的文件格式会有对应不同存储方式和处理机制(txt,pdf,word,mp4...) 针对不同的数据应该有对应的不同的处理机制来存储 存储引擎就是不同的处理机制 **MySQL主要存储引擎** *Innodb  是MySQL5.5版本及之后默认的存储引擎......
  • mysql 获取时间段 所有日期
    点击查看代码selectdate_add('2020-01-2000:00:00',intervalrowDAY)datefrom(SELECT@row:=@row+1asrowFROM(select0unionallselect1unionallselect2unionallselect3unionallselect4unionallselect5unionallselect6unionall......
  • win10 mysql
    windows10下安装配置mysql8.0(保姆级教程)news2023/9/1910:53:13 文章目录一、MySQL8.0的基本信息二、MySQL8.0的系统要求三、MySQL8.0的安装步骤3.1.下载MySQL8.03.2.运行MySQL安装文件3.3.选择安装类型3.4.配置MySQLServer3.5mysqlshell的使......
  • Mysql-主从数据库配置
    两台linux服务器,修改主机名为mysql1,mysql2  1.修改主机名 服务器11hostnamemysql1 服务器21hostnamemysql22.关闭防火墙及SElinux服务mysql11setenforce02systemctlstopfirewalldmysql21setenforce02systemctlstopfirewalld3.配置hosts文件m......
  • 记一个mysql死锁问题,在并发情况下导致的数据库更新超时
    1、问题:在执行mysql数据库更新操作,根据条件更新其中一列的值,具体的更新语句类似如下:updatepeoplesetname='zhangsan'whereid=1a andage=24;但是在Java中使用parallelStream().foreach(a->{//sql更新操作})并发流就会出现问题,导致有的更新会失败,报如下错误:M......
  • 【转】MySQL安装失败原因及解决方案
     MySQL安装,初始化数据的时候失败。。。。。报错bin.index一堆的乱码找了好长时间的原因了。。。。。。。大概率原因是:计算机名称是中文。 转自:MySQL安装失败原因及解决方案(ngui.cc)......