Mysql
 sql >> база данни >  >> RDS >> Mysql

вмъкването на множество стойности работи в процедурите на mysql?

Нямам MySQL сървър, така че вероятно има синтактични грешки и +1 грешки (т.е. може да не улавя последния в списъка, може да не напредва след първия елемент и т.н., проблемите са коригирани чрез поставяне на +1 в кода), но всъщност искате да замените вашия оператор INSERT с нещо това.

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;

Тогава вашето извикване на функция ще бъде нещо като

EXEC mobile_series1('9619825525,9619825255,9324198256')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на MariaDB с Entity Framework

  2. изберете * в outfile, който не работи дори за root

  3. Как да СУМИРАМЕ и ИЗВАДИМ с SQL?

  4. group_concat беше изрязан при изпълнение на заявка към таблица

  5. Laravel Eloquent query JSON колона с Where In?