MySQL 表一列逗号分隔字段,按逗号切割

直接查询

---切割前

select id,content from test_split;

1 12,13,14

2 21,25

3 33

--切割后

1 12

1 13

1 14

2 21

2 25

3 33

--执行sql

SELECT a.id,SUBSTRING_INDEX(SUBSTRING_INDEX(a.content,',',b.help_topic_id+1),',',-1) AS num

FROM test_split a join

mysql.help_topic b on b.help_topic_id < LENGTH(a.content)-LENGTH(REPLACE(a.content,',',''))+1;

存储过程游标入库

---切割前

select id,content from test_split;

1 12,13,14

2 21,25

3 33

--切割后

select id,content from test_split_open;

1 12

1 13

1 14

2 21

2 25

3 33

-------------创建表和插入测试数据

-- ----------------------------

-- Table structure for test_split

-- ----------------------------

DROP TABLE IF EXISTS `test_split`;

CREATE TABLE `test_split` (

`id` int(11) NOT NULL,

`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- Records of test_split

-- ----------------------------

INSERT INTO `test_split` VALUES (1, '12,13,14');

INSERT INTO `test_split` VALUES (2, '21,25');

INSERT INTO `test_split` VALUES (3, '33');

-- ----------------------------

-- Table structure for test_split_open

-- ----------------------------

DROP TABLE IF EXISTS `test_split_open`;

CREATE TABLE `test_split_open` (

`id` int(11) NOT NULL,

`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-------------切割存储过程

CREATE PROCEDURE `p_Split`()
BEGINDECLARE sid int;DECLARE scontent varchar(255);DECLARE s int DEFAULT 0;DECLARE ct CURSOR FOR select a.id,a.content from test_split a;DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1;OPEN ct; FETCH ct into sid,scontent;while s <> 1 DOinsert into test_split_open(`id`,`content`) SELECT sid,SUBSTRING_INDEX(SUBSTRING_INDEX(scontent,',',help_topic_id+1),',',-1) AS num FROM mysql.help_topic WHERE help_topic_id < LENGTH(scontent)-LENGTH(REPLACE(scontent,',',''))+1;FETCH ct INTO sid,scontent;end WHILE;CLOSE ct;
END

--执行存储过程

call p_split();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery template.js前端模板引擎

作为现代应用&#xff0c;ajax的大量使用&#xff0c;使得前端工程师们日常的开发少不了拼装模板&#xff0c;渲染模板 在刚有web的时候&#xff0c;前端与后端的交互&#xff0c;非常直白&#xff0c;浏览器端发出URL&#xff0c;后端返回一张拼好了的HTML串。浏览器对其进行渲…

webflux databuffer输出

直接输出JSON对象 GetMapping("selectMy") public Mono<Void> selectMy(ServerHttpRequest request, ServerHttpResponse response) {String pageNumber request.getQueryParams().getFirst("pageNumber");AuthUser authUser LoginProcess.getCurr…

Debug Hook

命名 关于这个命名是我自己这样说的&#xff0c;至于这种HOOK技术&#xff0c;先前在一个开源项目中叫做RemoteHook&#xff0c;我比较喜欢自己的这种命名&#xff0c;所以就叫Debug Hook。如果有错误&#xff0c;请指出。 先来说说调试的原理 在Windows操作系统&#xff0c;有…

多种时间格式字符串转换为Date对象

maven引入包 org.apache.commons commons-lang3 3.8 使用类 org.apache.commons.lang3.time.DateUtils 调用示例 Date date DateUtils.parseDate(strDate, "yyyy-MM-dd","yyyy-MM-dd HH:mm:ss","yyyy/MM/dd","yyyy/MM/dd HH:mm:ss&q…

SPFA 算法详解

适用范围&#xff1a;给定的图存在负权边&#xff0c;这时类似Dijkstra等算法便没有了用武之地&#xff0c;而Bellman-Ford算法的复杂度又过高&#xff0c;SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路&#xff0c;即最短路径一定存在。当然&#xff0c;我们可以…

webflux上传下载文件

上传文件 PostMapping("addAttach") public Mono<JsonResult> addAttach(RequestPart("file") FilePart filePart,//获取文件参数RequestPart("dataId") String dataId,//获取其他参数 ){String strFileName filePart.filename();//获取…

js 数字千分位展示

str.replace(/\d{1,3}(?(\d{3})$)/g,function(s){ return s, })

TCP基础知识 复习

前言 说来惭愧&#xff0c;大二时候学的计算机网络好多都不太记得了&#xff0c;不过还好有认真学过&#xff0c;捡起来也挺快的&#xff0c;就是对于现在业界中使用的网络算法的不是很懂&#xff1b; 1 TCP报文段结构 1.1 序号和确认号 序号&#xff0c;是报文段首字节的字节流…

Ant Design Tabs切换控制

注意点&#xff1a; 1.需要绑定activeKey&#xff0c;而不是defaultActiveKey属性&#xff0c;否则加载完成后无法通过设置state值切换。 2.绑定activeKey后选项卡切换点击无效&#xff0c;需通过点击事件修改state值才行。 切换控制 this.setState({ defaultActiveKey:&qu…

linux安装mongodb(设置非root用户和开机启动)

官网地址&#xff1a;https://www.mongodb.com/ 在官网上选择不同的linux系统得到不同的下载地址&#xff0c;我们用的下载地址是&#xff1a;https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz 1.mongodb的安装及连接 cd opt/ wget https://fastdl.mon…

Ant Design Tabs标签页隐藏的标签内元素无法获取到

Tabs.TabPane# 参数 说明 类型 默认值 forceRender 被隐藏时是否渲染 DOM 结构 boolean false 修改该值为true即可&#xff0c;该TabPane隐藏也可以渲染dom结构&#xff0c;示例&#xff1a; <TabPane tab"进度分析" key"2" forceRender"…

Mvc NuGet 数据迁移

网上有很多的ef code first 的使用的方式&#xff0c;很乱&#xff0c;下面是我自己整理出来的&#xff0c;有什么不正确的地方还请指正&#xff0c;本人菜鸟一枚&#xff01; 1、新建一个类库 》引用 右击 管理NuGet程序包 添加EntityFramework 类库中就会有添加一个App.conf…

Ant Design Form.Item的label中文字换行的替代方式

const FormItemForm.Item; 替换代码 <Row><div className{styles.label}>{checkItem.desc}</div><div className{styles.wrapper}><FormItem classNamedesc>{getFieldDecorator(check_is_do_${checkItem.id}, {rules: [{required: true,message…