Pertanyaan untuk Nilai Lajur Dipisahkan Koma dengan Nilai Tertentu
Dalam jadual di mana lajur mengandungi nilai dipisahkan koma yang mewakili kategori, terdapat adalah keperluan untuk mendapatkan semula baris berdasarkan kehadiran kategori tertentu. Walaupun menggunakan pernyataan LIKE mungkin mencukupi, terdapat kebimbangan mengenai kecekapan dan ketepatan.
Fungsi FIND_IN_SET(), walaupun didokumenkan dalam dokumentasi Oracle, tidak disokong dalam versi 10g. Akibatnya, pendekatan alternatif diperlukan untuk menanyakan nilai lajur yang dipisahkan koma dengan berkesan.
Penyelesaian yang menggunakan LIKE dengan pengubahsuaian untuk mengambil kira padanan separa dan koma adalah seperti berikut:
select * from YourTable where ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'
Walau bagaimanapun , pertanyaan ini terdedah kepada isu prestasi kerana penggunaan LIKE. Selain itu, ia menganggap bahawa nilai tidak mengandungi ruang atau koma, yang mungkin tidak selalu berlaku.
Untuk mengurangkan pengehadan ini, penyelesaian yang lebih cekap dan boleh dipercayai ialah menyusun semula jadual dengan memperkenalkan jadual kanak-kanak untuk kategori dan jadual pautan silang untuk mewujudkan hubungan dengan jadual utama. Pendekatan ini memberikan prestasi dan ketepatan yang lebih baik untuk menanyakan nilai lajur yang dipisahkan koma dengan nilai tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Nilai Lajur Dipisahkan Koma dengan Cekap untuk Nilai Khusus dalam Oracle 10g?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!