美文网首页
浅析mysql一行转多行

浅析mysql一行转多行

作者: remote_pluto | 来源:发表于2019-07-07 21:40 被阅读0次

一、当前表结构


1.png

二、sql语句

SELECT
 id,
 product_name,
 substring_index( substring_index( product.tags, ',', topic.help_topic_id + 1 ), ',',- 1 ) AS tag
FROM
 tbl_product product
 JOIN mysql.help_topic topic ON topic.help_topic_id < ( length( product.tags ) - length( REPLACE ( product.tags, ',', '' ) ) + 1 );

结果:


2.png

三、解析
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/m0_37934074/article/details/78784172

相关文章

  • 浅析mysql一行转多行

    一、当前表结构 二、sql语句 结果: 三、解析1.Substring_index的作用:取得目标字符串左侧第n个...

  • vscode 多行转换

    多行转一行 选中按快捷键ctrl+j 一行转多行

  • oracle一行转多行

    遇到这样的一个需求,需要实现根据一个字段统计数据,但是这个字段存储是多个字根据逗号分隔存储的,我要实现一行转多行的...

  • json多行转一行

    JSON美化:先在状态栏右下角选择语言种类(高亮规则)为JSON,然后选中要美化的JSON,Ctrl+Shift+...

  • Mysql:Exists和in的使用及对比

    转自:浅析MySQL中exists与in的使用 (写的非常好) Exists exists对外表用loop逐条查询...

  • Presto/hive 一行转多行,多行合并成一行

    presto-多行变一行 array_agg将数据整合起来变成一个列表,array_join将列表以指定分隔符连接...

  • 【转】PostgreSQL多行变一行

    TAGS PGSQL多行聚合,PGSQL多行合并为一行,PGSQL多行合并 参考内容 《PostgreSQL 多行...

  • 一行与多行转化

    多行转一行(collect_set(col)): 原始数据 hive> select id,name_set[1]...

  • 行列转换

    一行转多行 复制表格,然后右击鼠标选择转置复制 一列变多列 =IFERROR(OFFSET($A$2,IF(ROW...

  • mysql怎样将一行变成多行

    处理数据时,遇到了需要将一行数据变成多行数据的情况如下图数据 需要将数据处理成 相当于将project_manag...

网友评论

      本文标题:浅析mysql一行转多行

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