Menyoal Lajur Dipisahkan Koma untuk Nilai Tertentu
Anda menghadapi cabaran pangkalan data biasa: menanya jadual dengan lajur dipisahkan koma untuk nilai kategori tertentu. Walaupun penyataan LIKE mungkin memberikan penyelesaian, ia boleh menjadi sangat bertele-tele dan tidak cekap.
Untuk menangani isu ini, penyelesaian berpotensi melibatkan fungsi FIND_IN_SET(). Walau bagaimanapun, dalam Oracle 10g, fungsi ini tidak tersedia, mengakibatkan ralat "pengecam tidak sah".
Alternatif yang lebih mantap kepada penyataan LIKE tersedia:
<code class="sql">select * from YourTable where ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'</code>
Pertanyaan ini mencari padanan tepat nilai carian dalam lajur yang dipisahkan koma. Walau bagaimanapun, adalah penting untuk memasukkan koma sebelum dan selepas nilai carian untuk mengambil kira nilai pada permulaan atau penghujung rentetan.
Walaupun berkesan, pertanyaan ini mungkin menghadapi pengehadan prestasi disebabkan oleh kelambatan yang wujud dalam LIKE, terutamanya apabila kad bebas terkemuka hadir.
Akhirnya, penyelesaian ideal untuk mengendalikan lajur yang dipisahkan koma adalah dengan mempertimbangkan penstrukturan semula data. Ini boleh melibatkan mencipta jadual kanak-kanak untuk kategori atau malah jadual berasingan untuk kategori yang dipautkan ke jadual utama melalui mekanisme pemautan silang. Dengan menormalkan data dengan cara ini, pertanyaan akan datang boleh menjadi lebih cekap dan tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Lajur Dipisahkan Koma untuk Nilai Tertentu dalam Oracle 10g?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!