mysql - "IF"语句 MySQL

标签 mysql if-statement division rating

我正在制作一个可以投票的应用程序,我有一个表,其中包含从 0 到 100 的“评级”,也包含“投票”,代表投票数。我正在使用:

UPDATE maincategory SET rating='75'/votes

但是当没有其他人投票时,那么票数显然是“0”。这就是“75/0”(除以“0”)。我怎样才能做出“如果”声明或其他东西来验证该事物是否有“0”票,并且不除以“票”(因为它们是“0”)?

提前致谢

编辑:我的投票逻辑没有多大意义,我现在已经看到了......抱歉,我必须做什么来纠正这个问题?也许将所有评分加在一起并除以票数?

最佳答案

只需在有投票的行上运行它即可。

UPDATE maincategory SET rating='75'/votes WHERE votes>0

将其他评分保留为默认的 0NULL 评分,并在您的应用中进行处理。

此外,'75'/votes 位对我来说听起来有点不对劲。如果投一票,评分为 75。如果投两票,评分为 37.5。投票通常不会降低评级。

通常,新的评级将像这样设置(这是伪代码,不是有效的 SQL):

rating = ((current_rating * current_vote_count) + new_rating) / (current_vote_count + 1)

关于mysql - "IF"语句 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26679912/

相关文章:

r - 强制除以零默认为 NaN 而不是 Inf

java - 查找一个非常大的数是否可以被 7 整除的高效算法

mysql - 如何使用 Ansible 为 MySQL/MariaDB root 用户设置并保存随 secret 码?

mysql - 是否可以将 cfqueryparams 作为准备好的语句参数发送到 MySQL?

mysql - eloquent - 查询生成器运行带绑定(bind)的原始 sql

mysql - 如果存在于 mysql 不工作

javascript - If else 语句不适用于待办事项列表

mysql - NULL 值保存在数据库中而不是用户提交的信息

java - 错误 : java. util.NoSuchElementException - 扫描仪未按预期运行

jquery - 悬停动画后无法弄清楚如何使文本出现在 div 中