ホームページ > データベース > mysql チュートリアル > REGEXP_SUBSTR を使用してカンマ区切りリストから n 番目の要素を安全に抽出し、NULL を処理する方法

REGEXP_SUBSTR を使用してカンマ区切りリストから n 番目の要素を安全に抽出し、NULL を処理する方法

Patricia Arquette
リリース: 2025-01-01 12:10:10
オリジナル
799 人が閲覧しました

How to Safely Extract the nth Element from a Comma-Separated List Using REGEXP_SUBSTR and Handle Nulls?

REGEX と Null 処理を使用してリストから n 番目の値を選択する

カンマ区切りのリストから n 番目の要素を抽出するには、REGEXP_SUBSTR を使用します。 () ですが、null 値が発生すると失敗する可能性があります。この問題に対処するには、次の解決策を検討してください。

使用される正規表現は (.*?)(,|$) で、n 番目に出現するカンマまたは行末より前のすべてをキャプチャします。 .*?貪欲でないパターンは、カンマに到達するために必要な最小限の文字数に一致します。 n 番目のサブグループは、検索される値を表します。

SELECT REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1) AS data
FROM dual;

-- Output: NULL
ログイン後にコピー

このアプローチにより、リスト内の位置に関係なく、null 値が null として返されることが保証されます。

再利用性を高めるには、関数内の正規表現ロジック:

FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 AS
BEGIN
  RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1);
END GET_LIST_ELEMENT;
ログイン後にコピー

この関数を使用すると抽出が簡素化されますprocess:

SELECT GET_LIST_ELEMENT('123,222,,432,555', 4) AS value
FROM dual;

-- Output: 432
ログイン後にコピー

このアプローチは null 値を効果的に処理し、カンマ区切りリストからデータを抽出するための多用途のソリューションを提供します。

以上がREGEXP_SUBSTR を使用してカンマ区切りリストから n 番目の要素を安全に抽出し、NULL を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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