0

ときどき、単純なスクリプトを使用してデータベースの変更を移行したい状況に遭遇します。たとえば、 (INPUT)値を挿入しました

INSERT into mytable (CodeId, ValueData, category) VALUES (3, 4, 'COMPUTERS');
INSERT into mytable (CodeId, ValueData, category) VALUES (3, 12, 'TABLES');

次のような選択クエリを実行できるように、選択ステートメントを使用して挿入ステートメントを生成するにはどうすればよいですか。

SELECT (super query) from mytable where CodeId = 3

出力として次のようなものがあります:

INSERT into mytable (CodeId, ValueData, category) VALUES  (3, 4, 'COMPUTERS'), (3, 12, 'TABLES') ;

編集:


私は現在、次のようなものを試しています:

select concat('insert into mytable (CodeId, ValueData, category)
VALUES (', select (CodeId, ValueData, category) as gstr from mytable, ')')

その線に沿ったものであるべきだと思います....

4

3 に答える 3

2

完全にテストされていませんが、正しい軌道に乗るはずです...

SELECT Concat('INSERT INTO mytable (CodeId, ValueData, category) VALUES', Group_Concat(the_values)) As result
FROM   (
        SELECT Concat('(', CodeId, ', ', ValueData, ', ', category, ')') As the_values
        FROM   mytable
        WHERE  CodeId = 3
       ) As x
于 2013-08-05T10:46:03.327 に答える
1

これを試して、

Select CodeId, ValueData, category 
into DESTTableName  
from mytable where CodeId=3;
于 2013-08-05T10:46:46.473 に答える