Bagaimana untuk Menyoal Nilai Lajur Dipisahkan Koma dengan Cekap untuk Nilai Khusus dalam Oracle 10g?

Barbara Streisand
Lepaskan: 2024-10-30 11:23:03
asal
961 orang telah melayarinya

How to Efficiently Query Comma-Separated Column Values for Specific Values in Oracle 10g?

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,%'
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!