簡體   English   中英

如何從mysql中的單行獲取最小值

[英]How to get min value from a single row in mysql

我想知道如何從單行中獲取最小數值,例如:

我的桌子:

|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)

但這確實行不通。

任何幫助將不勝感激。

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM