Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencari Nilai Dengan Cekap dalam Rentetan Dibatasi Koma dalam SQL Server?

Bagaimanakah Saya Boleh Mencari Nilai Dengan Cekap dalam Rentetan Dibatasi Koma dalam SQL Server?

Linda Hamilton
Lepaskan: 2025-01-09 17:32:42
asal
726 orang telah melayarinya

How Can I Efficiently Search for Values Within Comma-Delimited Strings in SQL Server?

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>
    Salin selepas log masuk
  • 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>
Salin selepas log masuk

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'
  • Keputusan: Baris 1 dikembalikan kerana 'Kucing' ditemui dalam rentetan yang dipisahkan koma.

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!

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