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

MySQLのすべてのフィールドを置き換えます

    次のSQLクエリを使用して、すべての列の値を置き換える必要があるSQLクエリを生成します。

    select concat(
           'UPDATE my_table SET ',
           column_name,
           ' = REPLACE(', column_name, ', ''a'', ''e'');')
    from information_schema.columns
    where table_name = 'my_table';
    

    このSQLクエリを実行した後、すべてのクエリを実行してすべての値を置き換えます。

    グーグルした後はテストされていません

    このようなコアを使用してストアドプロシージャを作成します。テーブルの名前、検索する値、および置き換える値を受け入れることができます。

    主なアイデアは次を使用することです:

    1. 動的SQL実行用のプリペアドステートメント;
    2. テーブルのすべての列を反復処理するカーソル。

    以下の部分的なコード(テストされていない)を参照してください。

    DECLARE done INT DEFAULT 0;
    DECLARE cur1 CURSOR FOR
        SELECT column_name FROM information_schema.columns
        WHERE table_name = 'my_table';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
    
    OPEN cur1;
    REPEAT
        SET s = concat(
           'UPDATE my_table SET ',
           column_name,
           ' = REPLACE(', column_name, ', ''a'', ''e'');');
        PREPARE stmt2 FROM s;
        EXECUTE stmt2;
        FETCH cur1 INTO a;
    UNTIL done END REPEAT;
    CLOSE cur1;
    


    1. PostgreSQLで読み取り専用ユーザーを作成する方法

    2. レイアウトビューのフィルターを使用してMicrosoftAccessレポートを実行する時間を節約する

    3. SQLServerのメンテナンスプランを使用してバックアップとメンテナンスのジョブを自動化する

    4. SQLServerを使用するためのAzure仮想マシンの開発