mysql把以逗号连接的字段拆分成列表

这篇具有很好参考价值的文章主要介绍了mysql把以逗号连接的字段拆分成列表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:

由目标表testtt

mysql把以逗号连接的字段拆分成列表,java,mysql,数据库

得到分隔后的数据

mysql把以逗号连接的字段拆分成列表,java,mysql,数据库

步骤一:

创建中间表test
CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

添加数据

insert into `test` (`id`, `name`) values('0',NULL);
insert into `test` (`id`, `name`) values('1',NULL);
insert into `test` (`id`, `name`) values('2',NULL);
insert into `test` (`id`, `name`) values('3',NULL);
insert into `test` (`id`, `name`) values('4',NULL);
insert into `test` (`id`, `name`) values('5',NULL);
insert into `test` (`id`, `name`) values('6',NULL);
insert into `test` (`id`, `name`) values('7',NULL);
insert into `test` (`id`, `name`) values('8',NULL);
insert into `test` (`id`, `name`) values('9',NULL);
insert into `test` (`id`, `name`) values('10',NULL);
insert into `test` (`id`, `name`) values('11',NULL);
insert into `test` (`id`, `name`) values('12',NULL);

 步骤二:

创建目标表testtt
CREATE TABLE `testtt` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `value` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

添加数据

insert into `testtt` (`id`, `value`) values('1','1,2,3');
insert into `testtt` (`id`, `value`) values('2','4,5');
insert into `testtt` (`id`, `value`) values('3','6');
insert into `testtt` (`id`, `value`) values('4','7,8');
步骤三:

编写sql

SELECT     
	a.id, 
	SUBSTRING_INDEX( SUBSTRING_INDEX( a.value, ',', b.id + 1 ), ',', -1 ) AS VALUE 
FROM 	testtt a
JOIN 	test b ON b.id < ( LENGTH( a.value ) - LENGTH( REPLACE ( a.value, ',', '' ))+ 1 )

sql注意点:

1,test表的行数要大于需要拆分字段拆分后的数量(这里是单条数据拆分后的数量),否者会少数据

2,test表id需要从0连续的,否则也会少数据文章来源地址https://www.toymoban.com/news/detail-817290.html

到了这里,关于mysql把以逗号连接的字段拆分成列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 表中签到ID格式是以逗号分隔,需将ID拆开并分成多条数据

    原有数据格式: 拆分后数据格式:    拆分SQL: select bc.资源名称,bc.资源ID,bc.签到时间,bc.签到人,bb.column_value 签到附件ID     from report_fir.V_kw_checksign_info bc,table(hbrmw6.split_string(bc.签到附件ID,\\\',\\\')) bb; HBRMW6.split_string函数创建: CREATE OR REPLACE FUNCTION HBRMW6.split_string(p_string IN VARCHAR2

    2024年02月13日
    浏览(53)
  • mysql对以逗号分隔的字段内容进行查询——find_in_set函数或locate函数

    使用mysql时,有可能一个字段代表一个集合,如果将这个集合单独抽成一张表又不值当的,这个时候我们存储时,可以选择用逗号将数据分隔开(只能用英文的逗号),如图所示: 做查询时怎么查呢? 假如说给一个数据作为查询条件,判断该字段是否存在,应该怎么查呢?

    2024年02月09日
    浏览(49)
  • Java项目中,MySQL数据库中的时间字段用哪个?

    1.timestamp:                 自带时区属性,该类型的字段会随着服务器时区的变化而变化,自动换算成相应时区的时间,存储形式为:yyyy-MM-dd HH:mm:ss,对应的Java类型为java.sql.Timestamp                 缺点:只能存储到2038年的时间。 2.datetime:                 不具备时区

    2024年02月10日
    浏览(40)
  • [开发|java] 将一个Java字符串按逗号分割成一个列表(List)

    可以使用Java的 split() 方法将字符串分割成字符串数组,然后将数组转换为列表。以下是一个示例代码: 输出 在上述代码中,我们使用 split(\\\",\\\") 方法将字符串 str 按逗号分割成一个字符串数组,然后使用 Arrays.asList() 方法将数组转换为列表。最后,我们打印输出列表的内容。

    2024年02月16日
    浏览(54)
  • MYSQL: sql中某一个字段内容为用逗号分割的字符串转换成多条数据(适用于部分树机构)

    1.创建表的示例 数据如下图: SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.userName,‘,’,b.help_topic_id+1),‘,’,-1) as name from tbl_name a left join mysql.help_topic b on b.help_topic_id (LENGTH(a.userName)-LENGTH(REPLACE(a.userName,‘,’,‘’))+1) ORDER BY a.id; 本人需求为 图层树的父级节点都在 ancestors 字段中,需要获取

    2024年02月11日
    浏览(67)
  • mysql对以逗号分隔的字段内容进行查询——find_in_set函数或locate函数或position函数

    使用mysql时,有可能一个字段代表一个集合,如果将这个集合单独抽成一张表又不值当的,这个时候我们存储时,可以选择用逗号将数据分隔开(只能用英文的逗号),如图所示: 做查询时怎么查呢? 假如说给一个数据作为查询条件,判断该字段是否存在,应该怎么查呢?

    2024年01月15日
    浏览(50)
  • Java连接mysql数据库

    java连接mysql大致需要这六步: 导入驱动包 :这里我使用的是mysql-connector-java-8.0.17.jar( 点击下载 ),这个包连接mysql5.6,5.7,8.0版本都没问题。 Class.forName(\\\"com.mysql.cj.jdbc.Driver\\\"); url和账户名密码 JDBC连接串: jdbc:mysql://地址:端口/数据库 获取连接 : DriverManager.getConnection(url, user

    2024年02月02日
    浏览(49)
  • java连接mysql8.0数据库—jdbc连接

    mysql官网 点击platform Independent ,然后出现jar包选项 点download 点左下角no thanks,直接下载 原始方法,直接在项目下建一个lib包 然后将刚刚下好的zip解压,复制jar包到该目录下,右键jar包,选择add as Library 出现一堆包,表示成功导入jar包 注意:Driver类创建时,要导入com.mysql.cj.

    2024年02月13日
    浏览(60)
  • 【JDBC】Java连接MySQL数据库

    数据库编程指的是通过编程语言与数据库进行交互和操作的过程,包括使用编程语言创建、连接、查询、更新和删除数据库中的数据,以及管理数据库结构和其他相关工作等。 另外,不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包

    2024年02月15日
    浏览(115)
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)

       参考:java将list转为逗号隔开字符串_51CTO博客_list转字符串逗号隔开 Java将字符串转化为数组_java 字符串转数组-CSDN博客  Java逗号分隔-字符串与数组相互转换-CSDN博客  

    2024年02月08日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包