gpt4 book ai didi

php - MySQL 使用 assoc 数组更新同一查询中的多个用户行

转载 作者:行者123 更新时间:2023-11-28 23:10:55 25 4
gpt4 key购买 nike

我有一个用户数组,如下所示:array(1 => 10, 2 => 11 ...等 100k+ 值);

我目前正在遍历每个用户以更新数据库行。非常慢,大约 30 秒。

foreach ($users as $user_id => $plan_length) {
mysql_query("UPDATE users SET plan_length = $plan_length WHERE id = $user_id");
}

有没有办法将其组合成一个查询?

Ps.:我知道 PDO 家伙,但我在这里关注查询本身。此客户的项目没有 PDO。

附言。 2:如果 PDO 可能有解决方案,我们将使用 PDO。

附言。 3:plan_length的值是一个用户在一个计划中的月数,目前最大值为20。

最佳答案

您可以像这样编写更新查询。

UPDATE 
users
SET
plan_length =
CASE user_id
WHEN 1 THEN 10
WHEN 2 THEN 11
[...]
ELSE plan_length
END
WHERE
id IN(1, 2, [....])

关于php - MySQL 使用 assoc 数组更新同一查询中的多个用户行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983710/

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