sql >> Databáze >  >> RDS >> Mysql

vkládání více hodnot funguje v procedurách mysql?

Nemám server MySQL, takže pravděpodobně dochází k chybám syntaxe a chybám +1 (tj. nemusí zachycovat poslední položku v seznamu, nemusí postoupit za první položku atd., problémy opravené vložením +1 do kódu), ale v podstatě chcete svůj příkaz INSERT nahradit něčím tímto.

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;

Vaše volání funkce by pak bylo něco jako

EXEC mobile_series1('9619825525,9619825255,9324198256')



  1. Kroky k synchronizaci pohotovostního režimu s primární databází v Oracle

  2. Použití objektu java.sql.Timestamp v dotazu SQL

  3. HikariCP 1.4.0 MBean InstanceNotFoundException

  4. Oracle získá čísla s rozsahem