Masalah:
Dalam jadual tidak normal, lajur berlindung senarai dipisahkan koma yang bertindak sebagai kunci asing kepada jadual berasingan. Ini mewujudkan cabaran apabila menyepadukan data ke dalam enjin carian yang tidak mempunyai sokongan bahasa prosedur. Matlamatnya adalah untuk membahagikan senarai ini kepada berbilang baris, akhirnya menghasilkan jadual yang tidak normal.
Penyelesaian:
Walaupun MySQL tidak menyediakan fungsi yang secara semula jadi mengembalikan jadual, ia adalah pintar penyelesaian boleh dilaksanakan:
SELECT part_id, REGEXP_SUBSTR(`material`, '[^,]+', 1) AS `material_id` FROM unnormalized_table
Pertanyaan ini memberikan nilai pertama dalam senarai dipisahkan koma kepada lajur material_id, mencipta baris baharu untuk setiap part_id.
Contoh:
Menggunakan penyelesaian ini pada contoh yang disediakan dalam pernyataan masalah akan menghasilkan perkara berikut keputusan:
part_id | material_id |
---|---|
339 | 1 |
339 | 2 |
970 | 2 |
Kesimpulan:
Dengan memanfaatkan gabungan manipulasi rentetan dan subkueri, adalah mungkin untuk menyahnormalkan senarai yang dipisahkan koma dalam MySQL. Teknik ini membolehkan penyepaduan lancar data sedemikian ke dalam pelbagai aplikasi yang tidak menyokong ciri bahasa prosedur lanjutan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahnormalkan Senarai Dipisahkan Koma dengan Cekap dalam MySQL untuk Penyepaduan Enjin Carian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!