Mencari Nilai Dipisahkan Koma dengan Cekap dalam Lajur Pelayan SQL
Menggunakan jadual yang mengandungi nilai dipisahkan koma selalunya memberikan cabaran apabila cuba menapis baris berdasarkan kehadiran nilai tertentu dalam lajur tersebut. Artikel ini menggariskan kaedah yang boleh dipercayai untuk mencapai ini dalam SQL Server.
Perangkap Biasa
Pendekatan naif mungkin melibatkan penggunaan IN
kata kunci:
<code class="language-sql">SELECT id_column FROM table_name WHERE 'Cat' IN COLUMN</code>
Ini, bagaimanapun, tidak berkesan. Operator IN
menyemak padanan tepat terhadap nilai individu dalam set, bukan dalam kandungan rentetan lajur.
Begitu juga, menggunakan CONTAINS()
atau LIKE
boleh membawa kepada hasil yang tidak tepat. CONTAINS()
terdedah kepada padanan separa (cth., mencari "kuda" dalam "Kuda Laut"), manakala LIKE
memerlukan pengendalian koma di hadapan dan di belakang dengan teliti untuk mengelakkan negatif palsu. Mencari '%needle%'
mungkin terlepas entri seperti ',needle,'
atau 'needle,'
.
Penyelesaian Teguh
Kaedah yang lebih dipercayai melibatkan penambahan koma secara strategik pada kedua-dua hujung rentetan carian dan nilai lajur sebelum perbandingan. Ini memastikan padanan yang tepat, menghalang positif palsu:
<code class="language-sql">WHERE (',' + RTRIM(MyColumn) + ',') LIKE '%,' + @search + ',%'</code>
Teknik ini mengasingkan nilai sasaran dengan berkesan, memastikan hanya padanan tepat dikenal pasti, tanpa mengira kedudukan nilai dalam rentetan yang dipisahkan koma. Pendekatan ini menyediakan cara yang jauh lebih tepat dan boleh dipercayai untuk mencari nilai tertentu dalam lajur yang dipisahkan koma dalam SQL Server.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Khusus dalam Lajur Pelayan SQL yang Dibatasi Koma?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!