sql >> Database teknologi >  >> RDS >> Mysql

indsættelse af flere værdier fungerer i mysql-procedurer?

Jeg har ikke en MySQL-server, så der er sandsynligvis syntaksfejl og +1-fejl (dvs. fanger muligvis ikke den sidste på listen, kommer muligvis ikke forbi det første element osv., problemer løst ved at sætte en +1 i koden), men du ønsker grundlæggende at erstatte din INSERT-sætning med noget dette.

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;

Dit funktionskald ville så være noget lignende

EXEC mobile_series1('9619825525,9619825255,9324198256')



  1. Udførelse af SQL-script i oracle db én sætning ad gangen

  2. Hvordan får jeg ID'et for flere indsatte rækker i MySQL?

  3. Flet 2 arrays og summer værdierne (numeriske taster)

  4. C# For mange forbindelser i MySQL