Đây KHÔNG phải là điều bạn muốn làm trong một truy vấn duy nhất. Chỉ cần chia nhỏ nó ra, một truy vấn cho mỗi cột. Trong những trường hợp phù hợp (hay còn gọi là với các chỉ mục phù hợp và các loại cột bên phải), MySQL thực sự có thể tối ưu hóa các truy vấn này bằng cách ghi ngắn mạch để nó không bao giờ phải quét toàn bộ bảng mà chỉ cần lấy ra 5 giá trị hàng đầu và hoàn thành.
SELECT column1 FROM table ORDER BY column1 DESC LIMIT 5
SELECT column2 FROM table ORDER BY column2 DESC LIMIT 5
etc
Nếu bạn cố gắng trộn tất cả chúng lại với nhau thành một truy vấn khổng lồ, bạn sẽ chỉ thuyết phục được trình tối ưu hóa từ bỏ và quét lại toàn bộ bảng 50 lần, sau đó sử dụng 50 bảng tạm thời và có thể là một số phân loại tệp để có biện pháp tốt. Vì vậy, trừ khi bảng của bạn có khoảng 10 hàng trong đó (rõ ràng là không có), 50 truy vấn riêng biệt sẽ luôn nhanh hơn.