2015-06-22 2 views
0

Я хочу выбрать сумму значений my_field. Единица my_field находится в секундах. Я не хочу более 24 часов, так что, когда она превышает 24 часа, я хочу, чтобы выбрать 24 * 60 * 60 = 86400.Использование Sum in If in Mysql

SELECT IF(SUM(my_field) > 86400, 86400, SUM(my_field)) 
... 

Это решение не похоже на работу. Что еще я могу сделать?

ответ

3

Использование least было бы гораздо проще:

SELECT LEAST(SUM(my_field), 86400) 
FROM my_table 
+0

Не НАИМАЛЕЙШИМ ... – jarlh

+0

Спасибо за ответы, (или это МЕРЕ?) это дало мне эту идею. – tolga

+0

@jarlh yup, это был кратковременный перерыв в концентрации. Действительно - 'наименее' – Mureinik

2

Другой альтернативой является использование CASE выражения как

SELECT CASE WHEN SUM(my_field) > 86400 THEN 86400 ELSE SUM(my_field) END 
FROM table1 
+0

Спасибо, этот ответ тоже полезен. – tolga