2016-03-18 27 views
0

我想知道如何從單列得到最小數值,例如:如何從單行獲得MySQL的最小值

我的表:

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

問題是:我如何從col a,col b和col c得到最小值(我想忽略其他列)

我試試這個: SELECT MIN(col a,col b,col c)from表WHERE id = 0

但是,這不起作用。

任何幫助將不勝感激。

+0

BTW:excpected結果是:2 –

+0

好了,這裏沒有ID。除此之外,看到正常化 – Strawberry

回答

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; 
+0

謝謝!它完美的作品! –

相關問題