mysql计算两个数字之间的差异

Erd*_*Ece 1 php mysql sql

我有一个博客.我写了简单的投票系统.我的想法可能是错的.我有一张这样的桌子

id title文章TotalVotes VoteSum

当有人投票的文章TotelVotes得到一分如果有人投票的文章VoteSum cloumn获得1分

当我显示文章的投票时,我这样做

<?php
$Vote = $ROW['TotelVotes']-$ROW['VoteSum'];
?>
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但在我的头版我想显示热门文章所以我做了这个mysql查询

SELECT TotalVotes-VoteSum AS diff FROM `articles` ORDER BY `diff`  DESC
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到这样的数字18446744073709551615这种情况发生在例如当TotalVotes小于VoteSum时

数据类型是未签名的

我做错了什么?请你帮助我好吗?谢谢.

Joh*_*Woo 7

您可以使用 IF

SELECT IF(TotalVotes >= VoteSum, TotalVotes-VoteSum, VoteSum-TotalVotes) AS diff 
FROM `articles` 
ORDER BY `diff`  DESC
Run Code Online (Sandbox Code Playgroud)

UPDATE

如果你想获得负值,那么将这些列设置为INT SIGNED可以得到负数.并直接运行您自己的查询,

SELECT TotalVotes-VoteSum AS diff 
FROM `articles` 
ORDER BY `diff`  DESC
Run Code Online (Sandbox Code Playgroud)