PHP Mysql通过单个查询更新具有多个行值的多个列

时间:2015-03-04 13:13:29

标签: php mysql

我正在尝试更新mysql中的行但是我必须使用for循环进行多次更新以获取多个值mysql查询是

update table set column1='100',column2='140,column3='150' where id =1
update table set column1='120',column2='145,column3='154' where id =2
update table set column1='141',column2='148,column3='155' where id =3

我使用for循环运行查询多次使用不同的id,我想运行单个查询来更新所有行,但不使用大小写,这可能吗?

3 个答案:

答案 0 :(得分:1)

您可以使用循环生成动态查询。 请看一看。 这可能对您有所帮助。

$data[] = array("column1"=>100, "column2"=>140, "column3"=>150, "id"=>1 );
$data[] = array("column1"=>120, "column2"=>145, "column3"=>154, "id"=>2 );
$data[] = array("column1"=>142, "column2"=>148, "column3"=>155, "id"=>3 );

foreach($data as $dat){
    $query = "UPDATE table SET column1=".$dat['column1'].", column2=".$dat['column2'].", column3=".$da['column2']." WHERE id=".$dat['id'];
    echo $query;
}

答案 1 :(得分:0)

如果要更新所有ID,为什么要放WHERE子句?如果您不想更新所有ID,则必须在for循环中进行更新。

UPDATE tableName SET column1 = '100', column2 = '140', column3 = '150'

答案 2 :(得分:0)

您可以使用WHERE IN(...)。 例如:

update table set column1='100',column2='140,column3='150' where id IN (1,2,3)