[英]What is the best way to create a query with a big set of data?
我有大约360行数据,需要将它们转换为SQL的360查询,是否有任何快速的方法将所有数据放入一个查询中,而不必将它们全部分开,例如,这里只有3行数据我有:
1,81,32
1,101,82
1,60,65
我必须将此数据放入查询的,所以这3个看起来像:
INSERT INTO `Fixtures` (weeks, HomeID, AwayID) Values (1,81,32);
INSERT INTO `Fixtures` (weeks, HomeID, AwayID) Values (1,101,82);
INSERT INTO `Fixtures` (weeks, HomeID, AwayID) Values (2,60,65);
但是我有360行,因此很难一一将它们全部放入查询的1中,请问有没有更快的方法,就像将一个查询全部插入一样?
通常可以使用INSERT ... SELECT语法。
该语法因数据库而异,但通常类似于:
INSERT INTO `Fixtures` (weeks, HomeID, AwayID)
select 1,81,32
union all select 3,31,22
另一个变化是:
INSERT INTO Fixtures
(`weeks`, `HomeID`, `AwayID`)
VALUES
(1, 81, 32),
(3, 31, 22)
;
如果在文件中,请使用file()
,将它们逐行分隔。
$file = 'test.txt';
$lines = file($file);
foreach ($lines as $line)
{
// Can build an output of the inserts to use as an .sql file, or actually call the db to insert
$output .= 'INSERT INTO Fixtures (weeks, HomeID, AwayID) Values (' . trim($line) . ')';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.