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

Làm phẳng một cây trong MySQL?

Sử dụng ví dụ của bạn, bạn có thể xử lý tập hợp con của tên cha mẹ ở con cái nếu tên cha mẹ được chứa bên trong tên của những người phụ thuộc. Nếu vậy, hãy xem xét một truy vấn liên hợp:

# GREAT-GRANDPARNTS
SELECT DISTINCT Null As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 1

UNION

# GRANDPARNTS
SELECT DISTINCT Left(Parent, 1) As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 3

UNION

# PARENTS
SELECT DISTINCT Left(Child, 1) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3

UNION

# CHILDREN
SELECT DISTINCT Left(Child, 3) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3;

Tất nhiên là điều chỉnh Len() , Left() hoặc Mid() chuỗi hàm và mở rộng (tức là cháu) theo mẫu tên Tổ tiên thực tế. Giải pháp này sẽ không hoạt động nếu không có tham chiếu của cha mẹ trong các giá trị chuỗi con.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phương thức đăng nhập xác thực mã thông báo cookie

  2. Chọn truy vấn | Chọn các mục không bắt đầu bằng số - MySQL

  3. PHP Lỗi nghiêm trọng Hết bộ nhớ

  4. Khôi phục cơ sở dữ liệu trong WAMP

  5. pivot / univot bảng mysql