Mengambil Data daripada Senarai Terpaut dalam Pangkalan Data MySQL
Dalam pangkalan data MySQL dengan jadual yang mengandungi struktur senarai terpaut, seperti yang disediakan:
table id INT NOT NULL PRIMARY KEY data .. next_id INT NULL
Cabarannya terletak pada mendapatkan semula data dalam susunan yang sama seperti senarai terpaut. Malangnya, MySQL tidak secara langsung menyokong pertanyaan rekursif, yang diperlukan untuk mendapatkan semula struktur senarai terpaut.
Walau bagaimanapun, terdapat pendekatan untuk mengatasi had ini. Satu kaedah adalah dengan melintasi senarai terpaut secara manual menggunakan pertanyaan JOIN, seperti yang ditunjukkan dalam respons yang diberikan:
SELECT * FROM mytable t1 LEFT JOIN mytable t2 ON (t1.next_id = t2.id) LEFT JOIN mytable t3 ON (t2.next_id = t3.id) LEFT JOIN mytable t4 ON (t3.next_id = t4.id) LEFT JOIN mytable t5 ON (t4.next_id = t5.id) LEFT JOIN mytable t6 ON (t5.next_id = t6.id) LEFT JOIN mytable t7 ON (t6.next_id = t7.id) LEFT JOIN mytable t8 ON (t7.next_id = t8.id) LEFT JOIN mytable t9 ON (t8.next_id = t9.id) LEFT JOIN mytable t10 ON (t9.next_id = t10.id);
Pertanyaan ini dengan berkesan melakukan traversal pertama yang luas bagi senarai terpaut, mengembalikan semua baris dalam susunan kedudukan mereka dalam senarai.
Sebagai alternatif, seperti yang dicadangkan dalam ulasan, anda boleh menyimpan data senarai terpaut dalam pangkalan data NoSQL, yang biasanya memberikan sokongan yang lebih baik untuk mengendalikan struktur data bukan hubungan.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Data daripada Struktur Senarai Terpaut dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!