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
Mary-Kate Olsenasal
2025-01-02 19:07:40253semak imbas

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!

Kenyataan:
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