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

MySql, rozdělte řetězec a vložte do tabulky

Můžete sestavit jeden dotaz INSERT (protože příkaz umožňuje vložit více záznamů) a spustit jej pomocí připravené příkazy , např. -

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;

Jak vidíte, lze to provést bez uložené procedury.



  1. Funkce MySQL LOG() – Vrátí přirozený logaritmus hodnoty

  2. Co bych si měl vybrat - JSON nebo SQLite?

  3. Nejčistší způsob, jak vytvořit řetězec SQL v Javě

  4. EF a TransactionScope pro SQL Server i Oracle bez eskalace/překlenutí na DTC?