sql >> Databasteknik >  >> RDS >> Mysql

multiple value insert fungerar i mysql-procedurer?

Jag har ingen MySQL-server så det finns förmodligen syntaxfel och +1-fel (dvs. kanske inte fångar det sista på listan, kanske inte går förbi det första objektet etc, problem fixas genom att sätta en +1 i koden), men du vill i princip ersätta din INSERT-sats med något detta.

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;

Ditt funktionsanrop skulle då vara något liknande

EXEC mobile_series1('9619825525,9619825255,9324198256')



  1. Hur uppdaterar och tar man bort listan Visa data i SQLite-databas med klicklyssnare?

  2. MySQL - varför inte indexera varje fält?

  3. PHP för att lagra bilder i MySQL eller inte?

  4. SSL:400 inget obligatoriskt certifikat skickades