Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tìm nạp danh sách liên kết trong cơ sở dữ liệu MySQL

Một số thương hiệu cơ sở dữ liệu (ví dụ:Oracle, Microsoft SQL Server) hỗ trợ cú pháp SQL bổ sung để chạy "truy vấn đệ quy" nhưng MySQL không hỗ trợ bất kỳ giải pháp nào như vậy.

Vấn đề bạn đang mô tả cũng giống như biểu diễn cấu trúc cây trong cơ sở dữ liệu SQL. Bạn chỉ có một cái cây dài và gầy.

Có một số giải pháp để lưu trữ và tìm nạp loại cấu trúc dữ liệu này từ RDBMS. Xem một số câu hỏi sau:

Vì bạn đề cập rằng bạn muốn giới hạn "độ sâu" mà truy vấn trả về, bạn có thể đạt được điều này khi truy vấn danh sách theo cách này:

SELECT * FROM mytable t1
 LEFT JOIN mytable t2 ON (t1.next_id = t2.id)
 LEFT JOIN mytable t3 ON (t2.next_id = t3.id)
 LEFT JOIN mytable t4 ON (t3.next_id = t4.id)
 LEFT JOIN mytable t5 ON (t4.next_id = t5.id)
 LEFT JOIN mytable t6 ON (t5.next_id = t6.id)
 LEFT JOIN mytable t7 ON (t6.next_id = t7.id)
 LEFT JOIN mytable t8 ON (t7.next_id = t8.id)
 LEFT JOIN mytable t9 ON (t8.next_id = t9.id)
 LEFT JOIN mytable t10 ON (t9.next_id = t10.id);

Nó sẽ hoạt động giống như mật đường và kết quả sẽ trở lại tất cả trên một hàng (mỗi danh sách được liên kết), nhưng bạn sẽ nhận được kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kích hoạt nhật ký truy vấn chậm của MySQL mà không cần khởi động lại MySQL?

  2. Máy chủ MySQL độc lập

  3. Làm cách nào để tạo định dạng json với mysql group-concat?

  4. Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' với PHPMyAdmin

  5. Làm cách nào để chuyển đổi từ BLOB sang TEXT trong MySQL?