在select语句MySQL中的情况

时间:2014-05-12 12:56:46

标签: mysql int case game-center currency

我正在为GameCenter类型的应用程序构建数据库。以下是为特定游戏构建每周排行榜的查询的开始。 “得分”作为INT存储在表格“游戏”中,但是另一个字段“得分数字”表示应如何在排行榜中显示得分。我正在使用SELECT IF语句通过在INT的开头连接'£'来将INT转换为货币。但是现在我需要多个案例(EG时间),我似乎无法让它发挥作用。由于某种原因,case语句总是进入ELSE,我不明白为什么。谁能看到我的错误?感谢

SELECT userName as "User Name",
   score_timestamp as "Score Time",
    case score
        When scoreFormat = "time" Then SEC_TO_TIME(score)
        When scoreFormat = "money" Then Concat('£', score)
        Else score
    end as HighScore
    FROM ...

感谢。

2 个答案:

答案 0 :(得分:0)

case 
   When scoreFormat = "time" Then SEC_TO_TIME(score)
   When scoreFormat = "money" Then Concat('£', score)
   Else score
end 
as HighScore

答案 1 :(得分:0)

使用CASE语句有两种方法。您可以将它用作swich / case:

CASE scoreFormat
    WHEN 'time' THEN ...
    ELSE ..
END

或者您可以将它与显式表达式一起使用:

CASE
    WHEN scoreFormat = 'time' THEN ...
    ELSE ...
END

您正在使用两者的组合,但这并不像您期望的那样。