如何从mysql中的单行获取最小值

时间:2016-03-18 21:23:28

标签: mysql database min

我想知道如何从单行获取最小数值,例如:

我的表:

|col a|col b|col c|some other col|some other col|
-------------------------------------------------
|  13 |  2  |  5  |     0        |       0      |

问题是:如何从col a,col b和col c获取最小值(我想忽略其他列。

我试过这个:     从表WHERE id = 0

中选择MIN(col a,col b,col c)

但是,这并不起作用。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

MySQL中的正确功能是least()

SELECT least(cola, colb, colc) 
FROM table
WHERE id = 0;

非常重要:这假定所有值都是非NULL。如果您有NULL个值,则least()会返回NULL

如果您需要考虑这一点,可以使用coalesce()。 。 。一种方法是使用最高值:

SELECT nullif(least(coalesce(cola, 999999), coalesce(colb, 999999), coalesce(colc, 999999)), 999999)
FROM table
WHERE id = 0;

或者,对列中的值使用coalesce()

SELECT least(coalesce(cola, colb, colc), coalesce(colb, colc, cola), coalesce(colc, colb, cola))
FROM table
WHERE id = 0;