MYSQL SELECT - 如果x> 100然后x = 100

时间:2018-04-24 05:34:39

标签: mysql if-statement case

是否可以使SELECT查询将所有值都超过100并将它们返回为100?如果是这样,那怎么办呢。

Here is my SQL Fiddle

这是我尝试的查询,它确实将100以上的值返回为100,但是当我希望将它们作为原始值返回时,100以下的值将返回为0.

SELECT 
    o.steps,
    o.encodedid,
    CASE
        WHEN o.steps > 100 THEN 100
        ELSE o.steps < o.steps
    END 
    AS result
FROM
    activities o

或者我应该只获得超过100的值并使用PHP处理它们?

提前致谢,

1 个答案:

答案 0 :(得分:2)

几乎完美所有您需要做的就是改为

SELECT 
  o.steps,
  o.encodedid,
CASE
    WHEN o.steps > 100 THEN 100
    WHEN o.steps < 0 THEN 0
    ELSE o.steps
END 
  AS result
FROM
  activities o

所以只需删除&lt; o.steps来自你的case语句中的第二行,为第二个子句添加另一个,然后只是一个else来捕获它们之间的所有内容