Heim > Datenbank > MySQL-Tutorial > Wie kann man durch Kommas getrennte Zeichenfolgen in SQLite mithilfe von CTEs effizient aufteilen?

Wie kann man durch Kommas getrennte Zeichenfolgen in SQLite mithilfe von CTEs effizient aufteilen?

DDD
Freigeben: 2024-12-31 06:08:13
Original
962 Leute haben es durchsucht

How to Efficiently Split Comma-Separated Strings in SQLite Using CTEs?

Durch Kommas getrennte Werte mit den allgemeinen Tabellenausdrücken von SQLite aufteilen

Frage:

Wie kann das? Ich teile mühelos eine durch Kommas getrennte Zeichenfolge in der Kategoriespalte einer SQLite-Tabelle? Ich suche einen einfacheren Ansatz als die Verwendung von Replacement() und Trim() und vermeide die Einschränkungen von substr().

Antwort:

SQLite bietet eine Funktion namens Common Table Ausdrücke (CTEs), die rekursive Abfragen ermöglichen und die Aufteilung durch Kommas getrennter Werte erleichtern. Hier ist eine Aufschlüsselung:

Abfrage:

WITH split(word, csv) AS (
  SELECT '', 'Auto,A,1234444'||','
  UNION ALL
  SELECT substr(csv, 0, instr(csv, ',')), substr(csv, instr(csv, ',') + 1)
  FROM split
  WHERE csv != ''
)
SELECT word FROM split
WHERE word!='';
Nach dem Login kopieren

Erklärung:

  • 'ursprüngliche Abfrage ': Initialisiert den CTE mit einer einzelnen Zeile, die eine leere Zeichenfolge und die durch Kommas getrennte Zeichenfolge enthält wird mit einem zusätzlichen Komma abgeschlossen.
  • 'rekursive Abfrage': Wählt rekursiv Wörter bis zum nächsten Komma und den verbleibenden Teil der Zeichenfolge aus und teilt sie kontinuierlich auf, bis keine Kommas mehr gefunden werden.
  • 'final query': Filtert die anfängliche leere Zeile und das Endkomma aus der Teilung heraus Ergebnisse.

Ausgabe:

Auto
A
1234444
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man durch Kommas getrennte Zeichenfolgen in SQLite mithilfe von CTEs effizient aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage