php - 如何在Mysql中更新和插入多行

标签 php mysql

我有一个数组$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/

相关文章:

php - Facebook PHP SDK v5.0 - 找不到 FacebookRequest 错误

查询中的 PHP 变量不起作用

php - 图片上传 PHP

mysql - 如何使用COUNT()和GROUP BY显示每个部门的员 worker 数

php - 警告 : mysql_fetch_array(): supplied argument is not a valid MySQL result

php - 我可以在发送之前预览 PHP SOAP 要发送的 XML 吗?

PHP:跳过函数调用中的默认参数

mysql - 检查MySQL中的日期时间字段是否为英国夏令时间

javascript - 管理 HTML5 DIV 大小

mysql - 在 MySQL 5.7.22 中尝试使用 ENCRYPTION = "Error parsing DDL"( key 环插件)更改表时出现错误 'Y'