Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari Nilai dengan Cekap dalam Lajur Dibatasi Koma dalam SQL Server?

Bagaimana untuk Mencari Nilai dengan Cekap dalam Lajur Dibatasi Koma dalam SQL Server?

Susan Sarandon
Susan Sarandonasal
2025-01-09 17:36:42214semak imbas

How to Efficiently Search for Values within Comma-Delimited Columns in SQL Server?

Mencari Nilai dengan Cekap dalam Lajur Pelayan SQL Dipisahkan Koma

Panduan ini menunjukkan cara mengesan baris dalam SQL Server 2008 dengan berkesan di mana nilai tertentu wujud dalam lajur yang dipisahkan koma. Contohnya, diberikan lajur yang mengandungi "Kucing, Anjing, Sparrow, Trout, Lembu, Kuda Laut", anda perlu menentukan sama ada "Kucing" ada.

Kata kunci IN tidak sesuai di sini, kerana ia hanya sepadan dengan nilai yang tepat. Kaedah menggunakan CONTAINS() atau LIKE sahaja berisiko hasil yang tidak tepat disebabkan padanan separa atau koma tambahan.

Penyelesaian:

Pendekatan yang paling boleh dipercayai menggunakan manipulasi rentetan dan pengendali LIKE:

WHERE (',' RTRIM(MyColumn) ',') LIKE '%,' @search ',%'

Penjelasan:

  1. Tambah Koma: Tambahkan dan tambahkan koma pada nilai lajur (',' RTRIM(MyColumn) ',').
  2. Pangkas Ruang Pengesanan: RTRIM() mengalih keluar sebarang ruang mengekor daripada nilai lajur, menghalang negatif palsu.
  3. LIKE Operator: Operator LIKE dengan kad bebas (%) memastikan padanan lengkap istilah carian, mengendalikan nilai dengan betul pada permulaan, tengah atau akhir senarai dan mengabaikan koma di hadapan atau di belakang.

Kaedah ini menjamin pengenalpastian tepat nilai carian dalam senarai yang dipisahkan koma, tanpa mengira kedudukannya atau kehadiran koma tambahan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai dengan Cekap dalam Lajur Dibatasi Koma dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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