gpt4 book ai didi

MySQL - 组合具有不同 SET 和 WHERE 子句的 2 个查询

转载 作者:行者123 更新时间:2023-11-29 04:55:30 25 4
gpt4 key购买 nike

不久前@Richard Harris gave a great answer for a similar question ,但我相信我的情况略有不同。

如您所见,我有 2 个连续的 UPDATE 语句针对相同的表和字段,但具有不同的 SET 和 WHERE 子句。

$this->db->query("
UPDATE user_profiles
SET reputation = reputation + 15
WHERE user_id = $answer_author_id;
");

$this->db->query("
UPDATE user_profiles
SET reputation = reputation + 2
WHERE user_id = $user_id;
");

我想知道这是否可以组合成一个查询,或者是否需要进一步规范化。另外,这些连续的查询是不是太低效了?如果没有,我不会费心尝试组合成一个查询。

非常感谢您对此的想法。

最佳答案

你可以这样做:

UPDATE user_profiles
SET reputation = reputation +
case when user_id = $answer_author_id then 15
when user_id = $user_id then 2
else 0
end
WHERE user_id = $answer_author_id or user_id = $user_id;

关于MySQL - 组合具有不同 SET 和 WHERE 子句的 2 个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6887214/

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