2011-10-18 5 views
15

Nếu tôi có:Xác định rõ ràng thứ tự sắp xếp cho truy vấn mysql?

ID | Title 
1 | Shirt 
2 | CD 
3 | Cap 
4 | Mp3 
5 | Badge 

Nếu tôi muốn sắp xếp theo thứ tự: 4, 2, 5, 3,1. Có cách nào để làm một truy vấn sql, nơi bạn xác định rõ ràng điều này? Một cái gì đó như:

select * from TABLE order by ID(4,2,5,3,1) ?? 
+0

Bạn giới thiệu cột "vị trí" và sắp xếp các mục chính xác theo cách bạn muốn và truy vấn các hàng được sắp xếp theo vị trí? Dựa vào việc sắp xếp thứ bằng ID-s thì ... câm. –

Trả lời

22

Trên thực tế, bạn là đáng ngạc nhiên gần gũi. Đó là một đơn giản như:

select * from TABLE order by field(ID,4,2,5,3,1) 
+1

Tốt, có phải là MySQL cụ thể không? –

+1

@muistooshort Có - đó là mysql "funk" hơn, nhưng tất cả những thứ "không tuân thủ tiêu chuẩn" chỉ là tiện dụng quá khó để cưỡng lại! – Bohemian

4

Bạn có thể sử dụng một CASE trong ORDER BY như một bảng tra cứu thô sơ:

select * 
from your_table 
order by 
    case id 
     when 4 then 1 
     when 2 then 2 
     when 5 then 3 
     when 3 then 4 
     when 1 then 5 
    end 
2
select * from TABLE order by ID=1,ID=3,ID=5,ID=2,ID=4; 

bạn chạy này và cho tôi biết Giới thiệu về nghi ngờ của bạn.

+6

BẠN ĐANG B ONNG CÁCH XỬ LÝ CỦA BẠN. – smathy