Estou usando esta consulta:
UPDATE memes SET upvotes = upvotes + 1, score = ROUND((upvotes * 100) / (upvotes + downvotes)) WHERE ((mature_upvotes / upvotes) * 100) < 15 AND upvotes > 8 AND upvotes < 13
e eu recebo o aviso
Warning: #1365 Division by 0
Há mais de 10 mil linhas, então não sei quais são afetadas. Mas como isso pode ser verdade se (upvotes + downvotes)
nunca é 0?
Também atualizei uma linha específica que tinha mature_upvotes
como 0
ver se isso poderia causar o aviso, mas não obtive sucesso.
Atualmente, você tem
Então você calcula
mature_upvotes/upvotes
antes de confirmar que tem mais de 8 e menos de 13 upvotes. Isso significa que você não filtrou itens com 0 upvotes, então em alguns casos você está dividindo por 0. Fazermature_upvotes
0 como você fez também não causaria esse erro, já que você divide porupvotes
, nãomature_upvotes
.Isso pode ser facilmente resolvido, colocando o
upvotes > 8 AND upvotes < 13
antes de tentar a divisão, assim: