我正在使用这个查询:
UPDATE memes SET upvotes = upvotes + 1, score = ROUND((upvotes * 100) / (upvotes + downvotes)) WHERE ((mature_upvotes / upvotes) * 100) < 15 AND upvotes > 8 AND upvotes < 13
我收到警告
Warning: #1365 Division by 0
有超过 10k 行,所以我不知道哪些受到了影响。但是,当 (upvotes + downvotes)
永远不会为 0 时,这怎么可能呢?
我还更新了特定的一行,mature_upvotes
看看0
是否会引起警告,但我没有得到它
目前,您有
因此,
mature_upvotes/upvotes
在确认赞成票数大于 8 且小于 13 之前,您需要进行计算。这意味着您没有过滤掉赞成票数为 0 的项目,因此在某些情况下,您会除以 0。mature_upvotes
像您那样将赞成票数设为 0 也不会导致此错误,因为您除以upvotes
,而不是mature_upvotes
。这可以很容易地解决,通过在
upvotes > 8 AND upvotes < 13
尝试除法之前放置,如下所示: