Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Dapatkan Semua Subdirektori Direktori Yang Diberikan Menggunakan Pertanyaan SQL Rekursif Tunggal?

Bagaimana untuk Dapatkan Semua Subdirektori Direktori Yang Diberikan Menggunakan Pertanyaan SQL Rekursif Tunggal?

Mary-Kate Olsen
Lepaskan: 2025-01-02 19:07:40
asal
276 orang telah melayarinya

How to Retrieve All Subdirectories of a Given Directory Using a Single Recursive SQL Query?

Pertanyaan Rekursif untuk Mendapatkan Subdirektori

Pertimbangkan senario di mana anda mempunyai jadual bernama folders_table yang menangkap struktur direktori dengan lajur untuk id_folder_, id_parent , dan nama_folder. Untuk mendapatkan semula semua subdirektori direktori tertentu menggunakan pertanyaan SELECT tunggal, anda perlu menggunakan pendekatan rekursif. Langkah berikut memberikan panduan:

  1. Ubah Struktur Pangkalan Data: Ubah suai folders_table untuk memasukkan lajur tahap, yang akan menunjukkan kedalaman setiap folder dalam hierarki. Mulakan dengan tahap 1 untuk direktori akar dan kenaikan untuk setiap tahap di bawah.
  2. Buat Pertanyaan Rekursif: Gunakan CTE (Ungkapan Jadual Biasa) rekursif untuk melintasi struktur direktori. Pertanyaan harus bermula dengan folder akar yang diingini dan mengambil semula semua subdirektorinya secara rekursif, termasuk tahapnya.
  3. Tapis dan Sertai: Kekang pertanyaan untuk hanya memasukkan subdirektori kedalaman yang dikehendaki. Sertainya dengan folders_table asal untuk mendapatkan butiran folder tambahan jika perlu.

Pendekatan ini membolehkan anda mendapatkan semula pepohon subdirektori sehingga mana-mana kedalaman dengan satu pertanyaan. Rujuk sumber yang disediakan dalam jawapan yang disediakan untuk garis panduan pelaksanaan terperinci.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan Semua Subdirektori Direktori Yang Diberikan Menggunakan Pertanyaan SQL Rekursif Tunggal?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan