Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

inserção de vários valores funciona em procedimentos mysql?


Eu não tenho um servidor MySQL, então provavelmente há erros de sintaxe e erros +1 (ou seja, pode não estar capturando o último da lista, pode não progredir além do primeiro item etc., problemas corrigidos colocando +1 no código), mas você basicamente deseja substituir sua instrução INSERT por algo assim.
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;

Sua chamada de função seria algo como
EXEC mobile_series1('9619825525,9619825255,9324198256')