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

Làm cách nào để tôi có thể lấy lại một cách đệ quy ID cha của các hàng trong bảng MySQL này?

Điều này trang web có một cái nhìn tổng quan thực sự tốt đẹp về các phương pháp khác nhau để lưu trữ dữ liệu phân cấp trong mysql và PHP. Để trả lời câu hỏi của bạn, cách dễ nhất là sử dụng php và đệ quy. Có những phương pháp khác mà bạn có thể sử dụng, chẳng hạn như chuyển đổi đặt hàng trước đã sửa đổi modified preorder transversal , không yêu cầu nhiều truy vấn cơ sở dữ liệu. Nhưng phương pháp này có thể phức tạp hơn để thực hiện khi xử lý nhiều chèn và cập nhật.

Một phương pháp thực sự thú vị khác và yêu thích của cá nhân tôi là cái gọi là "bảng đóng" / "quan hệ kề" được đề cập trong Cách hiệu quả / trang nhã nhất để phân tích cú pháp một bảng phẳng thành một cái cây là gì?

Về nhận xét của bạn, về cơ bản, bạn phải tạo một vòng lặp hoặc một hàm đệ quy để chọn cha mẹ của chi Chicago, sau đó chọn cha mẹ của cha mẹ, v.v.

$stack = array();
$parent = 3;
while($parent != 0){
    $data = (put your mysql to get the row with parentID = $parent)
    $parent = data['parentID'];
    $stack[] = $data;
}

$stack = array_reverse($stack);

Sau đó, ngăn xếp sẽ chứa cha mẹ của Chicago, (ví dụ:location, USA)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Toán hạng nên chứa 1 cột - MySQL KHÔNG VÀO

  2. Bảng 'performance_schema.session_variables' không tồn tại

  3. Thêm giây vào ngày giờ trong MySQL

  4. Bảng điều khiển dành cho quản trị viên Glassfish ném java.lang.IllegalStateException khi tạo JDBC Pool

  5. Cách thay đổi đường dẫn của các dịch vụ mysql