我有一个博客.我写了简单的投票系统.我的想法可能是错的.我有一张这样的桌子
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时
数据类型是未签名的
我做错了什么?请你帮助我好吗?谢谢.
您可以使用 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)
| 归档时间: |
|
| 查看次数: |
11969 次 |
| 最近记录: |