2011-07-25 50 views
16

Tôi có một danh sách các số: 7,1,3,2,123,55 (mà là id của bản ghi hiện có)MySQL sắp xếp theo một số danh sách

Tôi có một bảng mysql với colums idname, nơi id là một khóa chính số nguyên. Tôi muốn chọn các bản ghi từ bảng này, nhưng theo một thứ tự cụ thể, ví dụ: 7, 1, 3, 2, 123, 55.

  • Có thể thực hiện điều này trong MyISAM trong truy vấn mà không cần xử lý bài đăng không?
  • Cách đơn giản nhất để thực hiện việc này là gì?

Trả lời

47

1 < 3 < 77 < 123, đơn giản ORDER BY id là đủ.

Tuy nhiên, nếu bạn muốn đặt hàng theo cách này: 77, 3, 123, 1, sau đó bạn có thể sử dụng chức năng FIELD():

SELECT id, name 
FROM mytable 
WHERE id IN (77, 3, 123, 1) 
ORDER BY FIELD(id, 77, 3, 123, 1) 
+0

Nó không làm việc ... tôi cố gắng này CHỌN * TỪ lalala WHERE id IN (8,9,4,5) ORDER BY FIELD (8,9,4,5) VÀ GOT: 4,5,8,9 ... hồ sơ –

+2

Sai. Nó phải là 'FIELD (id, ...)' –

Các vấn đề liên quan