0
は、私は、次の表を持っていると言う:キーは整数主キーであり、値がVARCHARであるテーブル内の既存の値に基づくSQLの一括挿入?
TABLE1
---------------------
| key | value |
---------------------
---------------------
| 0 | val0 |
---------------------
| 1 | val1 |
---------------------
| 2 | blah |
---------------------
。
今、新しいキーを使用してテーブルの既存の行ごとに重複する行を作成したいとします。新しい各行の値は、既存の行の値と同じになりますが、その前に接頭辞が付いています(CONCATを使用)。しかし、値にサブ文字列val
が含まれている場合にのみ、この挿入を実行します。
だから、ファイナルテーブルには、次のようになります。
---------------------
| key | value |
---------------------
---------------------
| 0 | val0 |
---------------------
| 1 | val1 |
---------------------
| 2 | blah |
---------------------
| 10 | pre_val0 |
---------------------
| 11 | pre_val1 |
---------------------
は、この種のものを行うことができINSERT文を作成する方法はありますか?ここで私が達成しようとしていることのより良い考えを与えるために(動作しない)疑似コードがあります。
insert into table1 (key, value) values (key + 10, CONCAT('pre_', value))
where value like '%val%';
このようなことを達成する方法はありますか?
これは実際のケースでは、テーブルの列名と値が単純化され、行が少なくなっています。私の実際の事例は同じではあるが、はるかに大きくて長い名前に見えるだろう。 – jros