2012-03-05 34 views
14

tôi có bảng:Có thể tự chọn lệnh trong truy vấn mysql không?

table1 
------------ 
id | name 
------------ 
1 | John 
2 | Steeve 
3 | Walter 
4 | Daniel 
5 | Jeremy 
6 | Carmelo 
... 

gì tôi cần là để lựa chọn từ bảng để tôi tự nhập ví dụ id 5,3,6,1,4,2

SELECT * FROM talbe1 ORDER BY (5,3,6,1,4,2) 

Có thể bằng cách nào đó không? Cảm ơn!

+0

Giải pháp duy nhất tôi có thể nghĩ đến là phải có một bảng mà bản đồ chìa khóa để sắp xếp trật tự và sau đó tham gia bảng đó. Hoặc, để tránh tham gia, hãy thêm cột thứ ba sẽ chỉ được sử dụng để sắp xếp. – knittl

+0

nhu cầu/logic đằng sau chuỗi này là gì ?? – diEcho

Trả lời

25

Bạn có thể sử dụng ORDER BYFIELD:

SELECT * FROM talbe1 ORDER BY FIELD(id, 5,3,6,1,4,2) 
+0

nó được ghi trong liên kết đã cho rằng 'FIELD' Trả về chỉ mục (vị trí) của' str 'trong danh sách' str1, str2, str3, ... '. Trả về ** 0 ** nếu không tìm thấy str. bạn sẽ xây dựng cách truy vấn này sử dụng chức năng này? – diEcho

+0

Cảm ơn Mark rất nhiều, cho đến nay tôi đã thử nghiệm nó hoạt động rất tốt! – woopata

1

Bạn có thể có thể thử điều này:

SELECT * FROM talbe1 ORDER BY FIELD(id,'5','3','6','1','4','2') 
Các vấn đề liên quan