我有一个数组$feedArray
类似这样的
Array ( [0] => array('id'=>'3','val=>'Renta Comerciales'),
[1] => array('id'=>'4','val=>'Renta de Casas'),
[2] => array('id'=>'6','val=>'Venta de Casas '),
[3] => array('id'=>'7','val=>'Venta de Departamentos'),
[4] => array('id'=>'1','val=>'Venta de Terrenos') )
我必须在名为 categoriasPlantilla
的表中进行两个查询
然后表格有三列
plantilla ,categoriaFeed, id
我必须检查数组的 val
是否存在于表的 categoriafeed
列中,然后我必须使用数组 id 更新该 id
如果没有,那么我必须在表中插入一个新行
Plantilla 的值为 11
我知道如何在一个查询中进行多次插入,但如何构建这样一个更新查询?
首先我想做这样的事情
$sql = "INSERT INTO categoriaplantilla (plantilla,categoriafeed,id) values ";
$sqlUpdate = "UPDATE categoriaplantilla ";
foreach($feedArray as $key =>$val)
{
$sqlUpdate . =;
$sql . = ;
}
请帮帮我
感谢和问候
最佳答案
您无法更新一个查询中设置的行。一行 - 一个查询。另外,你可以使用这样的东西
UPDATE table SET field1='aaa', field2='bbb' where id IN (1, 2,4).
但是这个查询将为每一行设置相同的数据。 有时我会用这个
INSERT INTO table(field1, field2) VALUES ('aaa', 'bbb')
ON DUPLICATE KEY
UPDATE SET field1='aaa', field2='bbb' where id IN (1, 2,4)
ps 如果您在查询中使用 PK,则几乎在任何情况下您都可能会忘记性能。
关于php - 如何在Mysql中更新和插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026638/