Heim >Datenbank >MySQL-Tutorial >Wie kann man in SQL Server effizient nach Werten in durch Kommas getrennten Spalten suchen?

Wie kann man in SQL Server effizient nach Werten in durch Kommas getrennten Spalten suchen?

Susan Sarandon
Susan SarandonOriginal
2025-01-09 17:36:42214Durchsuche

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

Effiziente Suche nach Werten in durch Kommas getrennten SQL Server-Spalten

Diese Anleitung zeigt, wie Sie Zeilen in SQL Server 2008 effektiv finden, in denen ein bestimmter Wert in einer durch Kommas getrennten Spalte vorhanden ist. Wenn beispielsweise eine Spalte mit „Katze, Hund, Spatz, Forelle, Kuh, Seepferdchen“ vorliegt, müssen Sie feststellen, ob „Katze“ vorhanden ist.

Das Schlüsselwort IN ist hier ungeeignet, da es nur mit exakten Werten übereinstimmt. Methoden, die CONTAINS() oder LIKE allein verwenden, riskieren ungenaue Ergebnisse aufgrund teilweiser Übereinstimmungen oder zusätzlicher Kommas.

Die Lösung:

Der zuverlässigste Ansatz verwendet String-Manipulation und den LIKE-Operator:

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

Erklärung:

  1. Kommas hinzufügen: Kommas voranstellen und an den Spaltenwert anhängen (',' RTRIM(MyColumn) ',').
  2. Nachgestellte Leerzeichen kürzen: RTRIM() entfernt alle nachgestellten Leerzeichen aus dem Spaltenwert und verhindert so falsch-negative Ergebnisse.
  3. LIKE-Operator: Der LIKE-Operator mit Platzhaltern (%) stellt eine vollständige Übereinstimmung des Suchbegriffs sicher, wobei Werte am Anfang, in der Mitte oder am Ende der Liste korrekt behandelt und ignoriert werden führende oder nachgestellte Kommas.

Diese Methode garantiert eine genaue Identifizierung des Suchwerts innerhalb der durch Kommas getrennten Liste, unabhängig von seiner Position oder dem Vorhandensein zusätzlicher Kommas.

Das obige ist der detaillierte Inhalt vonWie kann man in SQL Server effizient nach Werten in durch Kommas getrennten Spalten suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn