Mencari Nilai Khusus dalam Lajur Pelayan SQL Dipisahkan Koma
Menggunakan SQL Server 2008, anda mungkin perlu mencari baris di mana nilai tertentu berada dalam lajur yang mengandungi nilai dipisahkan koma. Cabarannya terletak pada mencari nilai ini di mana-mana dalam rentetan, bukan hanya sebagai padanan rentetan yang tepat.
Mari kita periksa masalah ini:
Contoh Jadual:
<code class="language-sql"> CREATE TABLE DelimitedValues (id INT, ColumnName VARCHAR(100)); INSERT INTO DelimitedValues VALUES (1, 'Cat,Dog,Sparrow,Trout,Cow,Seahorse'), (2, 'Mouse');</code>
Objektif: Kenal pasti baris yang ColumnName
menyertakan nilai khusus seperti "Kucing" atau "Kambing biri-biri".
Kaedah standard seperti IN
gagal kerana ia tidak mengendalikan nilai yang dibenamkan dalam senarai yang dipisahkan koma. Pendekatan yang lebih canggih diperlukan.
Penyelesaian yang berkuasa menggunakan penggabungan rentetan dan pengendali LIKE
:
<code class="language-sql">SELECT id FROM DelimitedValues WHERE (',' + RTRIM(ColumnName) + ',') LIKE '%,' + @search + ',%'</code>
Teknik ini memastikan nilai carian (@search) dikelilingi oleh koma, membolehkan pengesanan tanpa mengira kedudukannya dalam senarai. Contohnya:
ColumnName
memegang 'Kucing, Anjing, Burung Pipit, Ikan Trout, Lembu, Kuda Laut'@search
ialah 'Kucing'Kaedah ini mengendalikan semua kes dengan pasti: nilai pada permulaan, tengah atau akhir senarai dan entri nilai tunggal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Nilai Dengan Cekap dalam Rentetan Dibatasi Koma dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!