Pertanyaan Rekursif untuk Data Hierarki dalam MySQL
Dalam MySQL, menavigasi data hierarki dengan cekap boleh dicapai melalui pertanyaan rekursif. Pertanyaan ini membolehkan anda merentasi perhubungan pada sebarang kedalaman, memberikan cerapan menyeluruh tentang struktur data.
Satu senario biasa ialah mencari semua nenek moyang nod tertentu dalam struktur hierarki. Sebagai contoh, pertimbangkan jadual mytable dengan lajur id pengirim dan penerima, yang mewakili perhubungan penghantar-penerima. Jika anda ingin mendapatkan semula semua nenek moyang nod 5, anda perlu melintasi hierarki ke atas dari tahap ke tahap.
Pertanyaan rekursif di bawah menyelesaikan tugas ini:
SELECT @id := ( SELECT senderid FROM mytable WHERE receiverid = @id ) AS person FROM ( SELECT @id := 5 ) vars STRAIGHT_JOIN mytable WHERE @id IS NOT NULL
Akibatnya, pertanyaan rekursif ini akan melintasi hierarki dengan cekap, mendapatkan semula semua nenek moyang nod sasaran. Teknik ini boleh digunakan pada pelbagai struktur data hierarki, memberikan cerapan berharga dan membolehkan analisis data yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Pertanyaan Rekursif MySQL Boleh Mengemudi Data Hierarki dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!