繁体   English   中英

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

[英]PHP Mysql update multiple columns with multiple row values by single query

我正在尝试更新 mysql 中的行,但我必须对多个更新查询使用“for”循环,每个查询中有多个值。 查询如下所示:

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 的多个查询,我想运行一个查询来更新所有行,但不使用“case”。 那可能吗?

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

$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;
}

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM