gpt4 book ai didi

php - 比较和计算 mysql 行中的值

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:06 25 4
gpt4 key购买 nike

upVote   DownVote
|true | 0
|true | 0
|0 | true
|true | 0
|true | 0
|0 | true

我的 sql 表中有像上面这样的列。我想计算 upVotes - Downvotes 的总数,就像 stackOverflow 一样。但出于某种原因,我在使用 sql 语法时遇到了困难。

SELECT COALESCE(sum(CASE WHEN upvote THEN 1 ELSE 0 END),0) from Ratings WHERE TopicID = :topicsID

我在某处看到了上面的 sql 查询示例,但不确定我的方向是否正确。感谢您的帮助

最佳答案

我猜你需要在 sum(upvote)sum(DownVote) 上做减法

SELECT sum(upvote) - sum(DownVote)
from Ratings
WHERE TopicID = :topicsID

fiddle :http://sqlfiddle.com/#!9/b1644c/8

我认为一个带有 bool 值的 vote 列就足够了。

因为 True 可以表示 upvote,False 可以表示 DownVote

CREATE TABLE Ratings
(
Vote BOOL
);
INSERT INTO Ratings VALUES
(TRUE),
(TRUE),
(0),
(0),
(TRUE),
(TRUE),
(0);

SELECT sum(CASE WHEN Vote THEN 1 ELSE 0 END) -
sum(CASE WHEN Vote THEN 0 ELSE 1 END) as vote
from Ratings
WHERE TopicID = :topicsID

fiddle :http://sqlfiddle.com/#!9/727c2b/3

关于php - 比较和计算 mysql 行中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49736266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com