gpt4 book ai didi

php - 只需一个查询就可以用一个数组更新一个表

转载 作者:行者123 更新时间:2023-11-29 05:07:47 25 4
gpt4 key购买 nike

我有一个这样的表:

enter image description here

我收到一个这样的数组:

 $data = array(
array('m_id'=>1,'d_id'=>101,'available'=>0),
array('m_id'=>1,'d_id'=>102,'available'=>1),
array('m_id'=>1,'d_id'=>103,'available'=>1),
array('m_id'=>1,'d_id'=>104,'available'=>0),
array('m_id'=>1,'d_id'=>105,'available'=>0)
);

我的问题是如何只用一个这样的查询来更新表:

  $query = "UPDATE tbl_name SET available='".$data[0]['available']."'" WHERE conditon1";

我的意思是更新表一次而不是 5 次查询。

最佳答案

在纯 MySQL 中,您可以在 UPDATE 中使用 CASE 表达式来处理此问题:

UPDATE tbl_name
SET available = CASE WHEN d_id = 101 THEN 0
WHEN d_id = 102 THEN 1
WHEN d_id = 103 THEN 1
WHEN d_id = 104 THEN 0
WHEN d_id = 105 THEN 0 END
WHERE d_id IN (101, 102, 103, 104, 105)

另一方面,如果您想遍历数组数组然后发出 UPDATE 语句,您可以尝试以下操作:

foreach ($data as $entry) {
$query = "UPDATE tbl_name SET available=".$entry['available']." WHERE d_id=".$entry['d_id'];
// execute $query ...
}

关于php - 只需一个查询就可以用一个数组更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44995849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com