sql >> データベース >  >> RDS >> Mysql

MySql、文字列を分割してテーブルに挿入

    1つのINSERTクエリを作成して(ステートメントで複数のレコードを挿入できるため)、プリペアドステートメント 、例: -

    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;
    

    ご覧のとおり、ストアドプロシージャなしで実行できます。



    1. テーブルを結合する方法-SQL

    2. 累積合計をリセットしますか?

    3. List<>をSQLストアドプロシージャに渡す

    4. DATE_SUB()と日時計算に算術演算子を使用することの間に違いはありますか?