gpt4 book ai didi

php - MySQL Prevent 求和两次

转载 作者:行者123 更新时间:2023-11-29 06:00:01 27 4
gpt4 key购买 nike

我的 PHP 脚本中有以下查询:

SELECT SUM(score) + 1200 AS rating
FROM users_ratings
WHERE user_fk = ?

问题在于,如果用户在表中没有任何行,则评级返回为 NULL。所以我添加了一个 if 案例:

SELECT IF(SUM(score) IS NULL, 0, SUM(score)) + 1200 AS rating
FROM users_ratings
WHERE user_fk = ?

但现在我想知道如何在不重复 SUM(score) 的情况下进行查询。我猜如果我有很多行,总和会重复两次,这会影响应用程序的性能。

最佳答案

这里有一个更简单的方法:

SELECT ( COALESCE(SUM(score), 0) + 1200 ) AS rating
FROM users_ratings
WHERE user_fk = ?;

COALESCE() 是一个 ANSI 标准函数,它返回表达式列表中的第一个非 NULL 值。

然而,两次计算 SUM(score) 的额外开销——即使发生了——与查询的其余部分(查找数据、读入数据、将其总结为一行)。

关于php - MySQL Prevent 求和两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785005/

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