Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma dengan Cekap dalam SQLite Menggunakan CTE?

Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma dengan Cekap dalam SQLite Menggunakan CTE?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 03:12:11165semak imbas

How Can I Efficiently Split Comma-Separated Values in SQLite Using CTEs?

Memisahkan Nilai Dipisahkan Koma dalam SQLite

Pendekatan alternatif untuk bekerja dengan rentetan yang dipisahkan koma dalam SQLite melibatkan memanfaatkan Ungkapan Jadual Biasa (CTEs ). CTE menyediakan cara untuk memecahkan rentetan kepada nilai individu dengan berkesan.

Pelaksanaan Langkah demi Langkah:

  1. Buat CTE: Mulakan dengan mentakrifkan pemisahan bernama CTE yang menerima dua parameter: perkataan untuk menyimpan nilai individu dan csv untuk menyimpan rentetan dipisahkan koma.
  2. Pertanyaan Awal: Dalam pertanyaan awal CTE, anda akan menentukan rentetan CSV, menggabungkan koma tambahan untuk menunjukkan penghujungnya.
  3. Pertanyaan Rekursif: Pertanyaan rekursif menggunakan substr() dan instr() untuk mengekstrak perkataan pertama sehingga koma seterusnya dan kemas kini csv untuk mengalih keluar bahagian yang dihuraikan. Proses ini berulang sehingga tiada lagi koma ditemui.
  4. Pilih Hasil: Akhir sekali, pilih lajur perkataan daripada CTE, tidak termasuk baris pertama dan terakhir, yang mewakili rentetan CSV mentah dan mana-mana sisa kosong teks.

Contoh:

Berikut ialah contoh kod untuk menggambarkan pendekatan CTE:

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!='';

Output:

Auto
A
1234444

Kaedah ini menawarkan cara yang ringkas dan cekap untuk memisahkan rentetan yang dipisahkan koma dalam SQLite, membolehkan anda mengakses nilai individu dengan mudah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Nilai Dipisahkan Koma dengan Cekap dalam SQLite Menggunakan CTE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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