如何找到MySQL中LEAST()使用的列?

时间:2019-10-05 10:43:04

标签: mysql field field-names

我通过在mysql中使用此函数从五列中获得最低的价格:

field1: 9
field2: 10
field3: 6
field4: 15
field5: 55

select least(field1,field2,field3,field4,field5) as smallest from myTable;

所以我的结果将是“ 6”(取自field3)。但是我想知道具有最小值的列的名称。所以我希望结果是“ field3”。

我尝试了“向后”,因此如果“ 6”是正确的值,我可以尝试每一列。它可行,但这似乎是一个荒谬的计划,因为在我的实际应用程序中,我总共要检查24列。有什么好主意吗?

请注意:无法修改表格结构...我必须使用一个包含24个不同列中所有价格的单一表格。

2 个答案:

答案 0 :(得分:2)

您可以使用以下解决方案:

SELECT LEAST(field1, field2, field3, field4, field5) AS smallest,
  ELT(FIELD(LEAST(field1, field2, field3, field4, field5), field1, field2, field3, field4, field5), 'field1', 'field2', 'field3', 'field4', 'field5') 
FROM myTable;

demo on dbfiddle.uk

答案 1 :(得分:0)

这只是一个简单易读的CASE语句:

case least(field1, field2, field3, field4, field5)
    when field1 then 'field1'
    when field2 then 'field2'
    when field3 then 'field3'
    when field4 then 'field4'
    when field5 then 'field5'
end