Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melakukan Pertanyaan Rekursif dalam SQLite3 untuk Mendapatkan Data Hierarki?
Pertanyaan Rekursif dalam SQLite3
Dalam SQLite3, adalah mungkin untuk melaksanakan pertanyaan rekursif untuk mendapatkan semula data hierarki daripada jadual yang mengandungi induk-anak perhubungan, seperti mencari semua subbahagian superpart tertentu. Untuk mencapai matlamat ini, anda boleh menggunakan sintaks WITH RECURSIVE, yang disokong dalam SQLite3 versi 3.8.3 dan lebih tinggi.
WITH RECURSIVE SubParts AS ( SELECT Part, SuperPart, 1 AS Level FROM Part WHERE SuperPart = 'eZ00' UNION ALL SELECT p.Part, p.SuperPart, s.Level + 1 FROM Part AS p JOIN SubParts AS s ON p.SuperPart = s.Part ) SELECT * FROM SubParts;
Pernyataan WITH RECURSIVE mencipta jadual sementara yang dipanggil SubParts yang mengandungi baris asal dan a lajur bernama Tahap, yang dimulakan kepada 1 untuk baris induk. Klausa UNION ALL melakukan langkah rekursif dengan memilih baris yang sepadan dengan subbahagian baris semasa dan menambah Tahap sebanyak 1. Pertanyaan kemudiannya mengembalikan semua baris daripada jadual SubBahagian.
Sebelum SQLite3 3.8.3
Sebelum versi SQLite3 3.8.3, pertanyaan rekursif tidak disokong. Untuk meniru rekursi dalam kod klien untuk hierarki berbilang peringkat, ikuti langkah berikut:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Pertanyaan Rekursif dalam SQLite3 untuk Mendapatkan Data Hierarki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!