sql >> Databasteknik >  >> RDS >> Mysql

MySql, dela en sträng och infoga i tabellen

Du kan bygga en INSERT-fråga (eftersom satsen tillåter att infoga flera poster) och köra den med förberedda uttalanden , t.ex. -

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;

Som du ser kan det göras utan lagrad procedur.



  1. MysQl-fel:Ogiltigt parameternummer

  2. validera ålder innan du registrerar en användare för att kontrollera om han är över en viss ålder med hjälp av mvc

  3. java, korrekt användning av statiska variabler för att förhindra dödläge - Synkronisering

  4. vad är skillnaden mellan GROUP BY och ORDER BY i sql