doushi1473 2015-01-19 14:15
浏览 13

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

I have an array $feedArraysomething like this

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') ) 

I have to make two query in a table called categoriasPlantilla

Then table has three columns

plantilla ,categoriaFeed, id

I have to check if the val of the array exist in the categoriafeed column of table then I have to update that id with the array id

if not then I have to insert a new row to the table

The value for plantilla is 11

I know how to do multiple insert in one query but how I can build such a query for update ?

To begin I was thinking of doing something like this

$sql = "INSERT INTO categoriaplantilla (plantilla,categoriafeed,id) values ";
    $sqlUpdate = "UPDATE  categoriaplantilla ";
    foreach($feedArray as $key =>$val)
    {
        $sqlUpdate . =;
        $sql . = ;
    }

Please help me out

Thanks & Regards

  • 写回答

2条回答 默认 最新

  • dqingn8836 2015-01-19 14:21
    关注

    You can't update rows set in one query. One row - one query. Also, you can use something like this

    UPDATE table SET field1='aaa', field2='bbb' where id IN (1, 2,4).
    

    But this query will set equal data to each row. Sometimes I use this one

    INSERT INTO table(field1, field2) VALUES ('aaa', 'bbb')
    ON DUPLICATE KEY
    UPDATE SET field1='aaa', field2='bbb' where id IN (1, 2,4)
    

    ps if you are use PK in your query, you may forgot about preformance almost in any case.

    评论

报告相同问题?