ホームページ > データベース > 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 を初期化し、追加のカンマで終了するカンマ区切りの文字列。
  • 'recursive query': 次のカンマまでの単語と文字列の残りの部分を再帰的に選択し、それ以上になるまで継続的に分割します。カンマが見つかりました。
  • 'final query': 最初の空のクエリを除外します。分割結果からの行と終端のカンマ。

出力:

Auto
A
1234444
ログイン後にコピー

以上がCTE を使用して SQLite でカンマ区切り文字列を効率的に分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート