2013-10-28 82 views
1

我有一個SELECT語句,它返回給定間隔中3列的最大值,但是我需要知道這個最大值發生在哪一列,任何人都可以幫助解決這個問題?我目前的代碼是:Mysql - 找出最大值來自哪裏

$con->prepare("SELECT MAX(GREATEST(L1_RMS,L2_RMS,L3_RMS)) AS maior_valor FROM ELEVA WHERE <conditions>") 

在此先感謝您的任何想法。

+0

你是什麼意思需要知道什麼?你想要的列的名字也回來了? – Mihai

+0

我需要知道MAX(GREATEST)來自哪一列(L1_RMS或L2_RMS或L3_RMS)。所以,是的,列名也返回將解決我的問題。 – GustavoxD

回答

2

SQL fiddle

select id, GREATEST(L1_RMS, L2_RMS, L3_RMS) value, 
     case GREATEST(L1_RMS, L2_RMS, L3_RMS) 
     when L1_RMS then 'L1_RMS' 
     when L2_RMS then 'L2_RMS' 
     when L3_RMS then 'L3_RMS' 
     end columnName 
from table 
+0

真的很好的解決方案! :)但我在這裏返回columnName = NULL。只是爲了檢查,這種情況是否也適用於MAX(最大)? – GustavoxD

+0

MAX在你的情況下是多餘的,只要刪除它。 – Mihai

+0

但我真的需要來自ur代碼產生的行的最大值。 – GustavoxD