1

私の投票システムでは、投票できる値が 2 つあります。1 または -1。この正確な値がデータベースに保存されます。

現在、field_up と field_down のように区切られた値を選択/カウントしています。次のような値を 1 つだけ出力するようにクエリを変更したいと思います。

'+6' と -5 の場合は +1 (+ を含む) を返す必要があり、-3 と +2 の場合は -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

前もって感謝します!

テア。

4

3 に答える 3

1
SELECT SUM(thumb) AS votes FROM your_table
于 2013-04-08T12:12:59.247 に答える
0

これを試して

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
于 2013-04-08T12:12:50.463 に答える
0

いくつかのこと。これにより、クエリを大幅に簡素化できます。

SELECT 
SUM(thumb = 1) AS thumbs_up, 
SUM(thumb = -1) AS thumbs_down 
FROM ..etc

mysql (のみ)true1とであるため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
于 2013-04-08T12:30:02.123 に答える