mysql把字段拆成两个_MySQL数据库中,将一个字段的值分割成多条数据显示
本文主要记录如何在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数据库中,将一个字段的值分割成多条数据显示相关推荐
- mysql数据库中常用的类型_MySQL数据库中常用字段类型
MySQL数据库中常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:D ...
- sqlserver根据字段查表_查找sqlserver数据库中,查询某值所表名和字段名
有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. CR ...
- mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...
解析: 'ucfirst', explode('-', strtolower($request->action)) ))); ---------------------------------- ...
- mysql数据库,oracle数据库中对字段的拼接方法
mysql数据库,oracle数据库中对字段的拼接方法 1.简介 在日常开发中,常常有将多个字段拼接进行sql操作的场景,比如做模糊查询,我这里分两种环境阐述:1.在数据库中的写法:2.在mybati ...
- 如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示
如何将数据库中text字段中返回的数据转换成数组的形式,并且将字符串的数字转换成数字的形式显示 数据库text字段 数据库中的text字段在前端 界面返回的时候是成字符串的形式的,类似于下图 那么,在 ...
- 把数据库中有关枚举项值的数字字符串转换成文字字符串
原文:把数据库中有关枚举项值的数字字符串转换成文字字符串 标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySe ...
- php 查询datetime,急急PHP,数据库中createtime字段类型为datetime,怎样根据这个查询一段时间内的数据...
数据库中createtime字段类型为datetime,是年月日时分秒,怎样把他转换成时间戳?数据很多,一条好转换,可是那么多怎么办? 回复讨论(解决方案) select unix_timestamp ...
- oracle数据库中用sql拼接字符串和转成clob存储在数据库中
1.转成字符串,存储到数据库中 -- B.DESCRIPT73,为需要转换的字段 --||'<br />'则代表在需要转换的字段后面拼接上一个换行符,存到数据库中 select F.POL ...
- 数据库中的字段varchar类型和char类型的区别?
数据库中的字段varchar类型和char类型的区别? 目录 数据库中的字段varchar类型和char类型的区别?
- 【原创】数据库中时间字段的值读取到DataSet中后,毫秒部分丢失。
数据库中时间字段的值读取到DataSet中后,毫秒部分丢失. 在网上查了些解决方案,说读取时间时,先转化为DateTime类型,然后在ToString("yyyy-MM-dd HH:mm:s ...
最新文章
- 一个apk多个ICON执行入口
- 计算机办公应用适合什么工作,有什么软件堪称办公神器,让你每天的工作轻松不累?...
- js insertBefore insertAfter appendChild
- Java并发机制底层实现原理-volatile
- Qt工作笔记-QCustomplot绘制表,实现输入定位功能
- webdis实现Redis的http接口及多数据格式共享 [含json,restful]
- Pinyin Comparison 拼音辨别 V1.2
- TX2Ubuntu16.04远程登录
- dubbo如何利用spring扩展点完成初始化
- vue项目 报sockjs.js?9be2:1606 GET http://192.168.43.226:8080/sockjs-node/info?t=1584966826465 net::ERR
- Hex2Bin使用方法
- 利用diamond进行dbcan数据库建库并进行CAZyme注释(2022.8)
- Golang的微服务组件之限流器与熔断器
- java输出皮卡丘_使用CSS实现皮卡丘
- BZOJ 4031 HEOI2015 小Z的房间 Matrix-Tree定理
- SSD算法的改进版之R-SSD
- ICPLAZA凭BFT+POS快速“出圈” 打造更繁荣的生态系统
- 省市区sql语句之:(三)区1
- MySQL学习_数据库和表的基本操作
- Python diag函数