gpt4 book ai didi

mysql - MySQL中的复杂分割逗号值

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:00 25 4
gpt4 key购买 nike

下面是我的问题

我有字符串“ 1,2,3,4,5”。我想将值分割并放入一个临时表中,但我想将其插入1个位置,我的意思是输出将是

N°1 | N°2
---------
1 | 2
2 | 3
3 | 4
4 | 5


我希望有人能解决我的问题。谢谢!

最佳答案

对于一个简单的表,如以下语法创建的表

CREATE TABLE `demo2` (
`no1` int(11) NOT NULL,
`no2` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


您可以尝试使用以下存储过程。


  在每次插入时为字符串中的每个值加+1的示例


CREATE PROCEDURE `dowhile`(IN `s1` VARCHAR(255))
BEGIN
SET @length = CHAR_LENGTH(`s1`);
SET @counter = 1;
WHILE @counter <= @length DO
SET @char = SUBSTRING(`s1`, @counter, 1);
IF STRCMP(@char, ",") <> 0 THEN
INSERT INTO `demo2` (`no1`,`no2`) VALUES (@char,@char+1);
END IF;
SET @counter = @counter + 1;
END WHILE;
END



  在字符串中的字段 no1nth算术元素中添加 no2元素的示例(不计算逗号)


CREATE PROCEDURE `dowhile`(IN `s1` VARCHAR(255))
BEGIN
SET @length = CHAR_LENGTH(`s1`);
SET @counter = 1;
WHILE @counter <= @length DO
SET @next_el_counter = @counter + 2;
SET @char = SUBSTRING(`s1`, @counter, 1);
IF STRCMP(@char, ",") <> 0 THEN
INSERT INTO `demo2` (`no1`,`no2`) VALUES (@char,SUBSTRING(`s1`, @next_el_counter, 1));
END IF;
SET @counter = @counter + 1;
END WHILE;
END


别忘了称呼它...

CALL `dowhile`('1,2,3,4,5');

关于mysql - MySQL中的复杂分割逗号值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com