首頁 > 資料庫 > mysql教程 > 如何使用 CTE 在 SQLite 中有效拆分逗號分隔的字串?

如何使用 CTE 在 SQLite 中有效拆分逗號分隔的字串?

DDD
發布: 2024-12-31 06:08:13
原創
962 人瀏覽過

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

使用SQLite 的通用表表達式拆分逗號分隔值

問題:

如何我毫不費力地在SQLite 的Category 列中分割了一個逗號分隔的字符串桌子?我尋求一種比使用 Replace() 和 Trim() 更簡單的方法,並避免 substr() 的限制。

答案:

SQLite 提供了一個稱為 Common Table 的功能允許遞歸查詢的表達式 (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!='';
登入後複製

解釋:

  • 使用包含空字串和以逗號分隔的字串以額外的逗號結尾。
  • '遞歸查詢': 遞歸選擇直到下一個逗號的單字以及字串的剩餘部分,不斷分割它直到不再有逗號
  • '最終查詢': 過濾掉初始空白行和終端分割結果中的逗號。

輸出:

以上是如何使用 CTE 在 SQLite 中有效拆分逗號分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板