gpt4 book ai didi

mysql - 多值插入在 mysql 程序中有效吗?

转载 作者:行者123 更新时间:2023-11-30 23:27:52 24 4
gpt4 key购买 nike

多值插入示例 - 它手动工作但不在 mySQL 存储过程中。

INSERT INTO input_data1(mobile) VALUES (9619825525),(9619825255),(9324198256),(9013000002),(9999999450),(9999999876) ;

我在下面的过程中遇到“str”字附近的语法错误,谁能告诉我如何在过程中实现这个多值 INSERT 工作?

DELIMITER |
DROP PROCEDURE IF EXISTS mobile_series1;
CREATE PROCEDURE mobile_series1(IN str text)
LANGUAGE SQL READS SQL DATA
BEGIN
DROP TABLE IF EXISTS input_data1 ;
CREATE TEMPORARY TABLE input_data1 (mobile varchar(1000)) engine=memory;
INSERT INTO input_data1(mobile) VALUES str;

END |
DELIMITER ;

提前致谢。

最佳答案

我没有 MySQL 服务器,所以可能存在语法错误和 +1 错误(即可能没有捕获列表中的最后一项,可能没有超过第一项等,通过在代码),但你基本上想用这个替换你的 INSERT 语句。

DECLARE INT _CURSOR 0;
DECLARE INT _TOKENLENGTH 0;
DECLARE VARCHAR _TOKEN NULL;

SELECT LOCATE(str, ",", _CURSOR) - _CURSOR INTO _TOKENLENGTH;

LOOP

IF _TOKENLENGTH <= 0 THEN
SELECT RIGHT(str, _CURSOR) INTO _TOKEN;
INSERT INTO input_data1(mobile) VALUE _TOKEN;
LEAVE;
END IF;

SELECT SUBSTRING(str, _CURSOR, _TOKENLENGTH) INTO _TOKEN;

INSERT INTO input_data1(mobile) VALUE _TOKEN;

SELECT _CURSOR + _TOKENLENGTH + 1 INTO _CURSOR;

SELECT LOCATE(str, ",", _CURSOR + 1) - _CURSOR INTO _TOKENLENGTH;

END LOOP;

你的函数调用会是这样的

EXEC mobile_series1('9619825525,9619825255,9324198256')

关于mysql - 多值插入在 mysql 程序中有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263714/

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