sql >> Database >  >> RDS >> Mysql

meerdere waarden invoegen werkt in mysql-procedures?

Ik heb geen MySQL-server, dus er zijn waarschijnlijk syntaxisfouten en +1-fouten (d.w.z. mogelijk niet de laatste op de lijst vastleggen, mogelijk niet verder gaan dan het eerste item enz., problemen opgelost door een +1 in de code te plaatsen), maar u wilt in principe uw INSERT-instructie vervangen door iets dit.

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;

Uw functieaanroep zou dan zoiets zijn als

EXEC mobile_series1('9619825525,9619825255,9324198256')



  1. Oracle-aggregaat voor het samenvoegen van tekenreeksen met komma's en voor het schrijven van aangepaste aggregaten

  2. Wat is het verschil tussen MySQL en SQL?

  3. Upgrade MySQL naar MariaDB 10 (deel 2 – upgrade MariaDB/MySQL 5.5 naar versie 10.0)

  4. Is de volgorde van kolommen in een WHERE-clausule van belang?