如何从任何列中按最高值选择MySQL行?

时间:2014-12-18 17:53:39

标签: mysql

我有一个包含2000列和120000行(数值)的MySQL表。我想根据所有2000列的最高值选择一些行。

select * from table where column1='x' ORDER BY all_columns DESC;

基本上我想根据任何列的最高值而不是一个一个地订购多个列。

2 个答案:

答案 0 :(得分:1)

我怀疑你可能想要这个:

select t.*
from table t
order by greatest(col1, col2, col3, . . . ) desc
limit 1;

答案 1 :(得分:0)

您可以按顺序指定列号,因此您应该可以执行以下操作:

select * from table 
where column1='x' 
ORDER BY 1 DESC,2 DESC,3 DESC,4 DESC ..... 1999 DESC,2000 DESC;

我认为没有更短的路,但使用合适的设备,它应该是可行的。不过,我对你的用例非常好奇。这是一个极端数量的列,并且大多数肯定是极其可以按​​所有列排序。