在Postgres中将这三个查询组合在一行中

时间:2011-07-29 15:53:13

标签: postgresql

我有这些Postgres SQL,它位于某个while循环之间:

while (.......) {
...  
$runStatement = 'update products set abc = "'.data[0].'" where abc = "'.data[1].'";';
...
}

while (.......) {
...  
$runStatement = 'update products set xyz = "'.data[0].'" where xyz = "'.data[1].'";';
...
}

while (.......) {
...  
$runStatement = 'update extra_products set abc = "'.data[0].'" where abc = "'.data[1].'";';
...
}

其中每个循环data实际上是从同一个数组中读取的。

感谢。

2 个答案:

答案 0 :(得分:0)

你不需要循环。您可以在更新中进行JOIN,第一个表是例如产品,第二个表是VALUES(旧的,新的),(旧的,新的)等的长列表。这允许在一个命令中更新许多行并且要快得多。

答案 1 :(得分:0)

将语句与它们之间的分号连接起来,并在对DB的一次调用中运行它们。