Heim > Datenbank > MySQL-Tutorial > Wie konvertiert man effizient eine durch Kommas getrennte Zeichenfolge in eine SQL-IN-Liste?

Wie konvertiert man effizient eine durch Kommas getrennte Zeichenfolge in eine SQL-IN-Liste?

Mary-Kate Olsen
Freigeben: 2025-01-09 14:26:45
Original
351 Leute haben es durchsucht

How to Efficiently Convert a Comma-Separated String to an SQL IN List?

Konvertieren Sie eine durch Kommas getrennte Zeichenfolge in eine IN-Liste in der SQL-WHERE-Klausel

Frage:

Wenn Sie eine durch Kommas getrennte Zeichenfolge als Parameter in einer gespeicherten Prozedur speichern, besteht die Aufgabe darin, sie in der WHERE-Klausel in die richtige IN-Liste umzuwandeln.

Best-Practice-Lösungen:

Um diese Konvertierung effizient durchzuführen, erstellen Sie eine benutzerdefinierte SQL Server-Funktion:

CREATE function [dbo].[f_split] (
  @param nvarchar(max),
  @delimiter char(1)
)
returns @t table (val nvarchar(max), seq int)
as
begin
  set @param += @delimiter

  ;with a as (
    select cast(1 as bigint) f, charindex(@delimiter, @param) t, 1 seq
    union all
    select t + 1, charindex(@delimiter, @param, t + 1), seq + 1
    from a
    where charindex(@delimiter, @param, t + 1) > 0
  )
  insert @t
  select substring(@param, f, t - f), seq from a
  option (maxrecursion 0)
  return
end
Nach dem Login kopieren

Verwendung:

Füllen Sie die WHERE-Klausel mit der folgenden Anweisung:

SELECT *
FROM yourtable
WHERE account in (SELECT val FROM dbo.f_split(@account, ','))
Nach dem Login kopieren

Leistungsvergleich:

Diese Funktion bietet eine höhere Leistung im Vergleich zu XML-basierten Segmentierungsmethoden. Verwenden Sie einen großen Testdatensatz:

  • XML-Aufteilungszeit: 1 Minute und 21 Sekunden
  • f_split-Funktion dauert 43 Sekunden

Leistungsunterschiede können variieren, was die Effizienz benutzerdefinierter Split-Funktionen unterstreicht.

Das obige ist der detaillierte Inhalt vonWie konvertiert man effizient eine durch Kommas getrennte Zeichenfolge in eine SQL-IN-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage