2013-04-25 12 views
0

我知道你可以这样做:MySQL的复制行,使用PHP在同一时间

INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b, c, d 
FROM SomeTable 
WHERE SomeColumn = 1 

但如果不是SELECT a, b, c, d你需要更新这些列作为a, b, c, "string"

到什么说白了我想要说的声明:

INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b 
FROM SomeTable 
WHERE SomeColumn = 1 
// And put "string" into d 

UPDATE

于是我就这样:

INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b, c, 'string' 
FROM SomeTable 
WHERE SomeColumn = 1 

它选择的3行,在“C”柱不同的条目,并通过插入3行中的所有完全相同的更新“AnotherTable”。他们应该是不同的值,虽然...

+0

您可以通过这种类型选择值,它会工作。 – 2013-04-25 08:53:22

+0

我发布的更新确实有效,我忘记保存 - .- – 2013-04-25 09:46:13

回答

1
INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b,"SOME VALE","SOMEVALUE2" 
FROM SomeTable 
WHERE SomeColumn = 1 
0
INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b, $somevar, 'fixed string' 
FROM SomeTable 
WHERE SomeColumn = 1 

但是,你应该非常小心注入$ somevar那样。真的,你应该使用准备好的语句,所以它会...

INSERT INTO AnotherTable (a, b, c, d) 
SELECT a, b, :CustomValue, 'fixed string' 
FROM SomeTable 
WHERE SomeColumn = 1 

和CustomValue通过绑定到语句的值来设置。这里有一些例子:http://www.php.net/manual/en/pdostatement.bindvalue.php

+0

所以我设法减少它,所以我不使用'$ var',但问题是它插入适量的行,但它们是所有重复。 – 2013-04-25 09:29:17

相关问题