Tôi không có máy chủ MySQL vì vậy có thể có lỗi cú pháp và lỗi +1 (nghĩa là có thể không nắm bắt được mục cuối cùng trong danh sách, có thể không tiến triển qua mục đầu tiên, v.v., các vấn đề được khắc phục bằng cách đặt +1 vào mã), nhưng về cơ bản bạn muốn thay thế câu lệnh INSERT của mình bằng câu lệnh này.
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;
Lệnh gọi hàm của bạn sau đó sẽ giống như
EXEC mobile_series1('9619825525,9619825255,9324198256')