Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengambil Semua Subdirektori Direktori Khusus dalam MySQL dengan Satu Pertanyaan?

Bagaimana untuk Mengambil Semua Subdirektori Direktori Khusus dalam MySQL dengan Satu Pertanyaan?

Mary-Kate Olsen
Lepaskan: 2025-01-05 13:53:44
asal
803 orang telah melayarinya

How to Retrieve All Subdirectories of a Specific Directory in MySQL with a Single Query?

Mendapatkan semula Subdirektori dalam Satu Pertanyaan dengan MySQL Recursion

Pertimbangkan jadual yang menyerupai struktur direktori:

folders_table
-----------------------
- INT id_folder
- INT id_folder_parent
- VARCHAR folder_name
Salin selepas log masuk

Cabarannya terletak pada mendapatkan semula semua subdirektori direktori tertentu menggunakan satu SELECT pertanyaan.

Penyelesaian:

Struktur pangkalan data tradisional tidak dapat menyokong pertanyaan ini dengan cekap. Untuk membolehkannya, struktur pangkalan data mesti diubah suai. Khususnya, perhubungan rujukan kendiri diperkenalkan untuk mewakili hierarki.

Arahan Langkah demi Langkah:

  1. Tambah lajur baharu, left_index, untuk menjejaki susunan item di tahap yang sama.
  2. Tambah lajur baharu, indeks_kanan, untuk menjejak susunan item dalam keseluruhan hierarki.
  3. Buat jadual baharu dengan lajur ini: id_folder, id_folder_parent, left_index, right_index, folder_name.

Setelah pengubahsuaian selesai, pertanyaan berikut boleh digunakan untuk mendapatkan semula pokok mana-mana kedalaman dalam satu pertanyaan:

SELECT *
FROM folders_table
WHERE left_index > (SELECT left_index FROM folders_table WHERE id_folder = <parent_folder_id>)
AND right_index < (SELECT right_index FROM folders_table WHERE id_folder = <parent_folder_id>)
ORDER BY left_index
Salin selepas log masuk

Sumber untuk Penerokaan Selanjutnya:

  • [Menyimpan Data Hierarki dalam Pangkalan Data (SitePoint)](https://www.sitepoint .com/hierarchical-data-database/)
  • [Mengurus Data Hierarki dalam MySQL](https://www.qrypt.co.uk/blog/managing-hierarchical-data-in-mysql)

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Semua Subdirektori Direktori Khusus dalam MySQL dengan Satu Pertanyaan?. 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