Rumah > pangkalan data > tutorial mysql > Bagaimanakah Pertanyaan Rekursif Dapat Mendapatkan Leluhur dengan Cekap dalam Data Hierarki MySQL?

Bagaimanakah Pertanyaan Rekursif Dapat Mendapatkan Leluhur dengan Cekap dalam Data Hierarki MySQL?

DDD
Lepaskan: 2024-12-04 19:55:12
asal
976 orang telah melayarinya

How Can Recursive Queries Efficiently Retrieve Ancestors in MySQL's Hierarchical Data?

Pertanyaan Rekursif untuk Pengambilan Data Hierarki dalam MySQL

Apabila berurusan dengan data hierarki dalam pangkalan data, ia sering menjadi perlu untuk mendapatkan maklumat merentas berbilang tahap perhubungan. Dalam MySQL, pertanyaan rekursif menawarkan penyelesaian yang berkuasa untuk tugas ini.

Pertimbangkan contoh berikut: Bayangkan salasilah keluarga mudah diwakili dalam jadual dengan dua lajur: 'a' dan 'b,' di mana 'a' mewakili ibu bapa dan 'b' menandakan anak. Jika kita ingin mencari semua nenek moyang (ibu bapa, datuk nenek, dll.) individu tertentu, bagaimanakah kita akan mendekatinya?

Dalam MySQL, kita boleh memanfaatkan pertanyaan rekursif untuk melintasi struktur pokok dan mendapatkan semula nenek moyang daripada nod tertentu. Katakan kita ingin mencari nenek moyang individu dengan nilai 'b' 5. Pertanyaan berikut akan mencapainya:

SELECT  @id := (SELECT senderid FROM mytable WHERE receiverid = @id) AS person
FROM    (SELECT  @id := 5) vars
STRAIGHT_JOIN mytable
WHERE   @id IS NOT NULL
Salin selepas log masuk

Pertanyaan ini menggunakan subkueri rekursif untuk mewujudkan hubungan antara 'a' lajur (senderid) dan 'b' (receiverid). Pertanyaan dalam memulakan pembolehubah @id ke nod yang dikehendaki (5) dan kemudian menggunakan pertanyaan luar untuk menyertai baris berikutnya secara rekursif sehingga tiada lagi nenek moyang.

Dengan melaksanakan pertanyaan ini, kami akan memperoleh hasil berikut :

person
1
2
3
4

Hasil ini menyediakan hierarki lengkap menuju ke nod dengan nilai 'b' 5, termasuk nod awal itu sendiri dan ibu bapa, datuk dan neneknya dan sebagainya. Oleh itu, pertanyaan rekursif dalam MySQL berfungsi sebagai alat yang berkuasa untuk menavigasi data hierarki dan mendapatkan maklumat terperinci merentas pelbagai peringkat perhubungan.

Atas ialah kandungan terperinci Bagaimanakah Pertanyaan Rekursif Dapat Mendapatkan Leluhur dengan Cekap dalam Data Hierarki MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan