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 回答
0

这种插入的正确语法是:

INSERT INTO MyTable(CodeId, ValueData, category)
SELECT CodeId, ValueData, category
FROM MYTable
WHERE CodeID=3

您的示例是否选择了数据并将其插入到同一个表中?

只要选定的列与您要输入的列的模式匹配,就可以了。

于 2013-08-05T12:34:16.733 回答