本文主要记录如何在MySQL数据库中,将一个字符串分割成多条数据显示。

外键有时是以字符串的形式存储,例如 12,13,14 这种,如果以这种形式存储,则不能直接与其他表关联查询,此时就需要将该字段的值分割再关联查询。

下图是一条测试数据,表名为 test

想达到的效果如下图所示

为实现功能,需要新建一个表,该表只有一个字段,字段命名为id,表名称为 sequence

表中需要预先置入一些值,主要是便于分割判断,一般该数值取决于要分割字符串的长度,但长度 100 应该是够了。

下面分享两种可以实现效果的 SQL ,这两个SQL的最主要区别就是对 sequence 中值的要求。

第一种对 sequence 表的要求就是值要从 0 开始。

SELECTt.id,

SUBSTRING_INDEX(

SUBSTRING_INDEX(t. DATA,',', s.id + 1),',' ,- 1)ASDATAFROMtest tJOIN sequence s ON s.id

LENGTH(t. DATA)- LENGTH(REPLACE(t. DATA, ',', '')) + 1)

值从0开始的结果

值从1开始的结果

第二种对 sequence 表的要求就是值要从 1 开始

SELECTt.id,REPLACE(

SUBSTRING_INDEX(DATA,',', s.id),

CONCAT(

SUBSTRING_INDEX(DATA,',', s.id - 1),','),'')ASDATAFROMsequence sCROSS JOIN(SELECTid,

CONCAT(DATA,',') ASDATA,

LENGTH(DATA)- LENGTH(REPLACE(DATA, ',', '')) + 1 ASdataSizeFROMtest

) tON s.id <= t.dataSize

值从1开始的结果

值从 0 开始的结果

希望对看到这篇文章的你有所帮助。

mysql把字段拆成两个_MySQL数据库中,将一个字段的值分割成多条数据显示相关推荐

  1. mysql数据库中常用的类型_MySQL数据库中常用字段类型

    MySQL数据库中常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:D ...

  2. sqlserver根据字段查表_查找sqlserver数据库中,查询某值所表名和字段名

    有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. CR ...

  3. mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...

    解析: 'ucfirst', explode('-', strtolower($request->action)) ))); ---------------------------------- ...

  4. mysql数据库,oracle数据库中对字段的拼接方法

    mysql数据库,oracle数据库中对字段的拼接方法 1.简介 在日常开发中,常常有将多个字段拼接进行sql操作的场景,比如做模糊查询,我这里分两种环境阐述:1.在数据库中的写法:2.在mybati ...

  5. 如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示

    如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示 数据库text字段 数据库中的text字段在前端 界面返回的时候是成字符串的形式的,类似于下图 那么,在 ...

  6. 把数据库中有关枚举项值的数字字符串转换成文字字符串

    原文:把数据库中有关枚举项值的数字字符串转换成文字字符串 标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySe ...

  7. php 查询datetime,急急PHP,数据库中createtime字段类型为datetime,怎样根据这个查询一段时间内的数据...

    数据库中createtime字段类型为datetime,是年月日时分秒,怎样把他转换成时间戳?数据很多,一条好转换,可是那么多怎么办? 回复讨论(解决方案) select unix_timestamp ...

  8. oracle数据库中用sql拼接字符串和转成clob存储在数据库中

    1.转成字符串,存储到数据库中 -- B.DESCRIPT73,为需要转换的字段 --||'<br />'则代表在需要转换的字段后面拼接上一个换行符,存到数据库中 select F.POL ...

  9. 数据库中的字段varchar类型和char类型的区别?

    数据库中的字段varchar类型和char类型的区别? 目录 数据库中的字段varchar类型和char类型的区别?

  10. 【原创】数据库中时间字段的值读取到DataSet中后,毫秒部分丢失。

    数据库中时间字段的值读取到DataSet中后,毫秒部分丢失. 在网上查了些解决方案,说读取时间时,先转化为DateTime类型,然后在ToString("yyyy-MM-dd HH:mm:s ...

最新文章

  1. 一个apk多个ICON执行入口
  2. 计算机办公应用适合什么工作,有什么软件堪称办公神器,让你每天的工作轻松不累?...
  3. js insertBefore insertAfter appendChild
  4. Java并发机制底层实现原理-volatile
  5. Qt工作笔记-QCustomplot绘制表,实现输入定位功能
  6. webdis实现Redis的http接口及多数据格式共享 [含json,restful]
  7. Pinyin Comparison 拼音辨别 V1.2
  8. TX2Ubuntu16.04远程登录
  9. dubbo如何利用spring扩展点完成初始化
  10. vue项目 报sockjs.js?9be2:1606 GET http://192.168.43.226:8080/sockjs-node/info?t=1584966826465 net::ERR
  11. Hex2Bin使用方法
  12. 利用diamond进行dbcan数据库建库并进行CAZyme注释(2022.8)
  13. Golang的微服务组件之限流器与熔断器
  14. java输出皮卡丘_使用CSS实现皮卡丘
  15. BZOJ 4031 HEOI2015 小Z的房间 Matrix-Tree定理
  16. SSD算法的改进版之R-SSD
  17. ICPLAZA凭BFT+POS快速“出圈” 打造更繁荣的生态系统
  18. 省市区sql语句之:(三)区1
  19. MySQL学习_数据库和表的基本操作
  20. Python diag函数

热门文章

  1. Centos 下配置JAVA环境
  2. 【转译】玩黑莓你必须了解的10件事
  3. 使用安全json parser防止json注入
  4. mac 安装mysql 找不到_mac安装mysql遇到的坑
  5. 少儿编程、软硬编程课件、创意Scratch的项目小游戏,可单独上一节课
  6. 蛋糕是叫胚子还是坯子_这个生日蛋糕太适合手残党了,不会裱花也能做,学会再不买着吃了...
  7. Js时间相关处理函数
  8. 利用python进行数据加载和存储
  9. 激活中国汽车媒体圈,杉车网与尾部汽车媒体的九死一生
  10. PHP 实现-多线程编程