Tôi có một bảng cơ sở dữ liệu MySQL với cấu trúc này:tìm nạp danh sách liên kết trong cơ sở dữ liệu MySQL
table
id INT NOT NULL PRIMARY KEY
data ..
next_id INT NULL
tôi cần phải lấy dữ liệu theo thứ tự của danh sách liên kết. Ví dụ: được cung cấp dữ liệu này:
id | next_id
----+---------
1 | 2
2 | 4
3 | 9
4 | 3
9 | NULL
Tôi cần tìm nạp các hàng cho id = 1, 2, 4, 3, 9 theo thứ tự đó. Làm thế nào tôi có thể làm điều này với một truy vấn cơ sở dữ liệu? (Tôi có thể làm điều đó trên đầu khách hàng. Tôi tò mò nếu điều này có thể được thực hiện ở phía cơ sở dữ liệu. Vì vậy, nói rằng nó không thể là okay (được đưa ra bằng chứng đủ)). Bạn cũng có thể có điểm kết thúc (ví dụ: dừng sau 10 lần tìm nạp hoặc khi một số điều kiện trên hàng đó chuyển thành true) nhưng đây không phải là yêu cầu (có thể được thực hiện ở phía máy khách). Tôi (hy vọng tôi) không cần phải kiểm tra các tài liệu tham khảo vòng tròn.
Bạn có thể tạo thêm các bảng chỉ mục không? Tôi thực sự tò mò về kế hoạch giải thích cho truy vấn mà Bill đề xuất. Nó có thể không phải là xấu vì nó luôn luôn tìm kiếm trên khóa chính. Tôi giả định rằng bạn sẽ cung cấp ID của nút đầu tiên trong truy vấn của bạn. (nếu không, nó sẽ tàn bạo). 10 chuyến đi vòng sẽ làm điều đó (tôi biết, không phải những gì bạn yêu cầu). Bảng tạm thời được tạo trong truy vấn có thể làm điều đó, đặc biệt nếu kết quả của bạn được đặt nhỏ. – TheJacobTaylor