我有一个包含2000列和120000行(数值)的MySQL表。我想根据所有2000列的最高值选择一些行。
select * from table where column1='x' ORDER BY all_columns DESC;
基本上我想根据任何列的最高值而不是一个一个地订购多个列。
答案 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;
我认为没有更短的路,但使用合适的设备,它应该是可行的。不过,我对你的用例非常好奇。这是一个极端数量的列,并且大多数肯定是极其可以按所有列排序。