sql >> Database >  >> RDS >> Mysql

MySql, een string splitsen en in de tabel invoegen

U kunt één INSERT-query maken (omdat een instructie het mogelijk maakt om meerdere records in te voegen) en deze uitvoeren met voorbereide verklaringen , bijv. -

SET @MenuIDs = '1,2,3';
SET @RoledID = 100;

SET @values = REPLACE(@MenuIDs, ',', CONCAT(', ', @RoledID, '),('));
SET @values = CONCAT('(', @values, ', ', @RoledID, ')'); -- This produces a string like this -> (1, 100),(2, 100),(3, 100)

SET @insert = CONCAT('INSERT INTO RolesMenus VALUES', @values); -- Build INSERT statement like this -> INSERT INTO RolesMenus VALUES(1, 100),(2, 100),(3, 100)

-- Execute INSERT statement
PREPARE stmt FROM @insert;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Zoals je ziet, kan het worden gedaan zonder opgeslagen procedure.



  1. Illegale mix van sorteringen voor operatie 'concat'

  2. Hoe de volledige zoekopdracht te zien van PROCESSLIST TOON

  3. SQL SERVER - Truc - SSMS uitvoeren met een ander Windows-account

  4. SQL:Hoe tekenreeks uit te voeren is niet gelijk aan