mysql - 向查询添加 +1 以解决 "division by zero"错误

标签 mysql sql

考虑以下“用户”表:

uid  followers  following  ff_fraction
--------------------------------------
1    40         2          20
2    10         3           3
3     0         2           0
4     5         0           5
5    77         2
6     9         3

我想为每个用户计算关注者/关注者的比例,四舍五入为整数。我为前 4 个用户填写了表格:

  1. 40/2 = 20
  2. 10/3 = 3.3333 => 舍入 3
  3. 0/2 = 0
  4. 5/0 => 这会出错,所以我数了+1,使得 5/1 = 5

我现在有以下查询,但它没有说明“following”为零(因此它必须加 1 才能不得到零差错):

UPDATE users SET ff_fraction = ROUND(followers/following)

是否可以在 MySQL 查询中解决这个问题?

最佳答案

UPDATE users SET ff_fraction = ROUND(followers / GREATEST(following, 1))

GREATEST将使这个值永远不会低于 1。

关于mysql - 向查询添加 +1 以解决 "division by zero"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925170/

相关文章:

sql - sql触发打印消息

mysql - 在表 SQL 中创建并打印计数

sql - 嵌套选择的性能

mysql - 尝试在 mySQL 的新列中将计算四舍五入到小数点后两位

mysql - 试图理解/开始使用 MySQL 中的 k-means 聚类算法

java - 使用 Activity 对象和 BLOB

sql - 将数据从 XML 导入 SQLite

php - Codeigniter数据选择

mysql - 将两个身份验证类型 PAP 和 EAP 与 FreeRadius 结合使用

php - sql-Mysql : Left join on multiple rows and retrieve 1 row