mysql中字符串截取与拆分

引言

截取和拆分字符串在编程生涯中是普遍存在的,在sql中也不例外,下面就让我们来一起探索mysql中字符串的截取和拆分吧。

截取字符串

一、left(str,length)

从左边截取字符串,参数str:被截取的字符串,length:截取的长度

SELECT LEFT('中华人民共和国从此站起来了',7);

截取结果:
在这里插入图片描述

二、right(str,length)

从右边截取字符串,参数str:被截取的字符串,length:截取的长度

SELECT RIGHT('中华人民共和国从此站起来了',6);

截取结果:
在这里插入图片描述

三、截取特定长度的字符串

有两种用法: substring(str,pos)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,直至字符串结束;
substring(str,pos,length)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,向右截取length个字符。

1.从字符串第n个字符开始到结束

SELECT SUBSTRING('abcdefg',3);

截取结果:
cdefg

2.从字符串第3个字符开始,只截取4位

SELECT SUBSTRING('abcdefg',3,4);

截取结果:
cdef

3.从字符串倒数第3个字符开始至结束

SELECT SUBSTRING('abcdefg',-3);

截取结果:
efg

4.从字符串倒数第3个字符开始,只截取2位

SELECT SUBSTRING('abcdefg',-3,2);

截取结果:
ef

四、按分隔符截取

SUBSTRING_INDEX(str,delim,count)
参数str:被截取的字符串;
参数delim:分隔符;
参数count:第几个分隔符,为正数时,截取从左往右第几个分隔符左边的内容,为负数时,截取从右往左第几个分隔符右边的内容。

1.截取第1个 "-"之前的所有字符

SELECT SUBSTRING_INDEX('100-200-300-400', '-', 1);

截取结果:
100

2.截取倒数第1个"-"之后的所有字符

SELECT SUBSTRING_INDEX('100-200-300-400', '-', -1);

截取结果:
400

3.截取中间的某个值
比如说要取100-200-300-400 的第二个,可以先取count为2的,再从右取count为-1

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('100-200-300-400', '-', 2),'-', -1); 

截取结果:
200

4.如果指定的分隔符找不到则返回整个字符串

SELECT SUBSTRING_INDEX('100-200-300-400', '-', 5);

截取结果:
100-200-300-400
由于在字符串“100-200-300-400”中找不到第5个“-”,所以返回了整个字符串

分割字符串

方法:充分和循环利用函数 SUBSTRING_INDEX(str,delim,count)来实现分割字符串。

一、分割成多列

1.举列

将字符串 ‘John,Doe,25’ 分成三列

SELECT
			SUBSTRING_INDEX('John,Doe,25', ',', 1) AS first_name,
			SUBSTRING_INDEX(SUBSTRING_INDEX('John,Doe,25', ',', 2), ',', -1) AS last_name,
			SUBSTRING_INDEX('John,Doe,25', ',', -1) AS age;

2.运用
表结构:

CREATE TABLE `remark_test` (
  `remark` varchar(50) DEFAULT NULL COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入数据:

INSERT INTO `test`.`remark_test` (`remark`) VALUES ('张三,男,38');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('李四,男,32');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('林青霞,女,66');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('张柏芝,女,45');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('刘德华,男,60');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('许晴,女,53');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('关芝玲,女,58');
INSERT INTO `test`.`remark_test` (`remark`) VALUES ('成龙,男,62');

分割成多列:

SELECT
  remark AS '原文',
	SUBSTRING_INDEX( remark, ',', 1 ) AS '姓名',
	SUBSTRING_INDEX(SUBSTRING_INDEX( remark, ',', 2 ),',',-1) AS '性别',
	SUBSTRING_INDEX( remark, ',', -1 ) AS '年龄'
FROM
	remark_test;

分割结果:
在这里插入图片描述

二、分割成多行

需要借助一张序号从0开始且连续自增的表

CREATE TABLE `auto_add_seq` (
  `id` int(11) DEFAULT NULL COMMENT '自增序列字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自增序列表';

插入连续自增的序号,序号的最大值根据分割行数确定,这里插入500行:

INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (0);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (1);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (2);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (3);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (4);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (5);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (6);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (7);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (8);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (9);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (10);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (11);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (12);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (13);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (14);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (15);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (16);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (17);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (18);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (19);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (20);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (21);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (22);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (23);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (24);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (25);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (26);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (27);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (28);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (29);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (30);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (31);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (32);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (33);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (34);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (35);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (36);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (37);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (38);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (39);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (40);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (41);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (42);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (43);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (44);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (45);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (46);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (47);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (48);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (49);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (50);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (51);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (52);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (53);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (54);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (55);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (56);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (57);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (58);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (59);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (60);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (61);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (62);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (63);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (64);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (65);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (66);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (67);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (68);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (69);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (70);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (71);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (72);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (73);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (74);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (75);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (76);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (77);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (78);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (79);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (80);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (81);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (82);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (83);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (84);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (85);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (86);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (87);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (88);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (89);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (90);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (91);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (92);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (93);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (94);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (95);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (96);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (97);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (98);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (99);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (100);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (101);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (102);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (103);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (104);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (105);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (106);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (107);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (108);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (109);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (110);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (111);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (112);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (113);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (114);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (115);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (116);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (117);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (118);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (119);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (120);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (121);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (122);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (123);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (124);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (125);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (126);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (127);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (128);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (129);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (130);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (131);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (132);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (133);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (134);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (135);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (136);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (137);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (138);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (139);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (140);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (141);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (142);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (143);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (144);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (145);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (146);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (147);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (148);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (149);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (150);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (151);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (152);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (153);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (154);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (155);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (156);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (157);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (158);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (159);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (160);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (161);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (162);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (163);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (164);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (165);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (166);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (167);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (168);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (169);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (170);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (171);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (172);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (173);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (174);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (175);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (176);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (177);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (178);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (179);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (180);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (181);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (182);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (183);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (184);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (185);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (186);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (187);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (188);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (189);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (190);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (191);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (192);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (193);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (194);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (195);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (196);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (197);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (198);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (199);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (200);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (201);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (202);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (203);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (204);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (205);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (206);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (207);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (208);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (209);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (210);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (211);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (212);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (213);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (214);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (215);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (216);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (217);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (218);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (219);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (220);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (221);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (222);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (223);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (224);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (225);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (226);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (227);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (228);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (229);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (230);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (231);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (232);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (233);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (234);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (235);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (236);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (237);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (238);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (239);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (240);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (241);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (242);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (243);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (244);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (245);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (246);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (247);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (248);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (249);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (250);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (251);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (252);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (253);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (254);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (255);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (256);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (257);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (258);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (259);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (260);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (261);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (262);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (263);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (264);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (265);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (266);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (267);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (268);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (269);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (270);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (271);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (272);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (273);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (274);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (275);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (276);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (277);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (278);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (279);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (280);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (281);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (282);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (283);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (284);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (285);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (286);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (287);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (288);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (289);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (290);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (291);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (292);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (293);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (294);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (295);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (296);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (297);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (298);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (299);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (300);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (301);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (302);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (303);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (304);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (305);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (306);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (307);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (308);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (309);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (310);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (311);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (312);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (313);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (314);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (315);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (316);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (317);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (318);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (319);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (320);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (321);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (322);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (323);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (324);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (325);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (326);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (327);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (328);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (329);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (330);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (331);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (332);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (333);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (334);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (335);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (336);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (337);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (338);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (339);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (340);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (341);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (342);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (343);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (344);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (345);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (346);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (347);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (348);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (349);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (350);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (351);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (352);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (353);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (354);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (355);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (356);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (357);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (358);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (359);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (360);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (361);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (362);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (363);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (364);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (365);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (366);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (367);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (368);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (369);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (370);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (371);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (372);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (373);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (374);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (375);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (376);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (377);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (378);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (379);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (380);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (381);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (382);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (383);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (384);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (385);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (386);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (387);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (388);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (389);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (390);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (391);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (392);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (393);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (394);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (395);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (396);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (397);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (398);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (399);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (400);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (401);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (402);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (403);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (404);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (405);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (406);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (407);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (408);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (409);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (410);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (411);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (412);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (413);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (414);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (415);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (416);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (417);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (418);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (419);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (420);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (421);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (422);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (423);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (424);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (425);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (426);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (427);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (428);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (429);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (430);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (431);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (432);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (433);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (434);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (435);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (436);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (437);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (438);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (439);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (440);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (441);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (442);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (443);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (444);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (445);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (446);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (447);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (448);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (449);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (450);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (451);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (452);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (453);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (454);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (455);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (456);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (457);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (458);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (459);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (460);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (461);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (462);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (463);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (464);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (465);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (466);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (467);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (468);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (469);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (470);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (471);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (472);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (473);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (474);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (475);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (476);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (477);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (478);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (479);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (480);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (481);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (482);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (483);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (484);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (485);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (486);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (487);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (488);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (489);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (490);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (491);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (492);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (493);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (494);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (495);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (496);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (497);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (498);
INSERT INTO `test`.`auto_add_seq` (`id`) VALUES (499);

1.举例

将 字符串’1,2,3,4,5’分割成5行

SELECT
    substring_index(substring_index('1,2,3,4,5',',',id + 1),',' ,-1) AS new_id
FROM
    auto_add_seq
WHERE
    id <= (length('1,2,3,4,5') - length(REPLACE ('1,2,3,4,5', ',', '')));

分割结果:
在这里插入图片描述
2.运用
表结构:

CREATE TABLE `test_user` (
  `user_id` int(11) NOT NULL COMMENT '用户id',
  `role_ids` varchar(100) DEFAULT NULL COMMENT '逗号分隔的角色id集合',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入数据:

INSERT INTO `test`.`test_user` (`user_id`, `role_ids`) VALUES (1, '1,3,5,6,8');
INSERT INTO `test`.`test_user` (`user_id`, `role_ids`) VALUES (2, '1,3,7,6,8,20,15,22');
INSERT INTO `test`.`test_user` (`user_id`, `role_ids`) VALUES (3, '6,8,20,15,22');

将用户id为2的角色id字符串分割多选角色id:

SELECT substring_index(substring_index(u.role_ids,',',s.id + 1),',' ,-1) AS role_id
FROM test_user u CROSS JOIN auto_add_seq s ON s.id <= LENGTH(u.role_ids) - LENGTH(REPLACE(u.role_ids,',',''))
WHERE u.user_id = 2;

分割结果:
在这里插入图片描述

总结

right(str,length)和left(str,length)只截取指定字符串左或右边指定长度的子串,substring(str,pos,length)截取指定字符串位置开始指定长度的子串,substring_index(str,delim,count) 截取指定字符串在第count个分隔符左边或右边的子串,以上三个函数中 substring_index函数更新灵活,充分利用可以产生神奇的效果。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值