mysql从sum中以最小值或加号重新返回值

mysql从sum中以最小值或加号重新返回值,mysql,sum,calculated-field,Mysql,Sum,Calculated Field,对于我的投票制度,我有两种可能的价值观可以投票支持。1或-1,此值正好保存在数据库中 现在我选择/计算像field\u up和field\u down这样分开的值。我想将查询更改为只输出一个值,如下所示: 如果我们有“+6”和-5,它应该返回+1(带+) 如果我们有-3和+2i,它应该返回-1(带-) 现在我有以下问题 SELECT SUM(CASE thumb when 1 then 1 else 0 end) AS "thumbs_up", SUM(CASE thumb when -1

对于我的投票制度,我有两种可能的价值观可以投票支持。1或-1,此值正好保存在数据库中

现在我选择/计算像field\u up和field\u down这样分开的值。我想将查询更改为只输出一个值,如下所示:

如果我们有“+6”和-5,它应该返回+1(带+) 如果我们有-3和+2i,它应该返回-1(带-)

现在我有以下问题

SELECT 
SUM(CASE thumb when 1 then 1 else 0 end) AS "thumbs_up", 
SUM(CASE thumb when -1 then 1 else 0 end) AS "thumbs_down" 
FROM ..etc
提前谢谢

Thea.

试试这个

SELECT 
SUM( CASE WHEN thumb =1 THEN 1 ELSE 0 END) as "thumbs_up", 
SUM( CASE WHEN thumb =-1 THEN 1 ELSE 0 END) as "thumbs_down",

FROM ..etc
试试这个

SELECT 
SUM( CASE WHEN thumb =1 THEN 1 ELSE 0 END) as "thumbs_up", 
SUM( CASE WHEN thumb =-1 THEN 1 ELSE 0 END) as "thumbs_down",

FROM ..etc

两件事。您可以将查询简化为:

SELECT 
SUM(thumb = 1) AS thumbs_up, 
SUM(thumb = -1) AS thumbs_down 
FROM ..etc
因为在mysql中(仅)
true
1
false
0

其次,您需要查询该查询以调整输出:

SELECT concat(if(thumbs_up > thumbs_down, '+', ''), thumbs_up - thumbs_down)
FROM (
SELECT 
    SUM(thumb = 1) AS thumbs_up, 
    SUM(thumb = -1) AS thumbs_down
    FROM ..etc
) x

两件事。您可以将查询简化为:

SELECT 
SUM(thumb = 1) AS thumbs_up, 
SUM(thumb = -1) AS thumbs_down 
FROM ..etc
因为在mysql中(仅)
true
1
false
0

其次,您需要查询该查询以调整输出:

SELECT concat(if(thumbs_up > thumbs_down, '+', ''), thumbs_up - thumbs_down)
FROM (
SELECT 
    SUM(thumb = 1) AS thumbs_up, 
    SUM(thumb = -1) AS thumbs_down
    FROM ..etc
) x

@你可以尝尝新鲜茶this@Freshtea你可以试试这个