ホームページ >データベース >mysql チュートリアル >MySQL テキスト フィールドから連続する数字を抽出するにはどうすればよいですか?

MySQL テキスト フィールドから連続する数字を抽出するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-30 15:15:13331ブラウズ

How Can I Extract Consecutive Digits from MySQL Text Fields?

MySQL テキスト フィールドからの連続した数字の抽出

MySQL のテキスト フィールドから連続した数字を効果的に抽出するには、いくつかの方法があります。

通常の使用式:

MySQL の組み込み正規表現サポートを利用して、テキスト フィールド内の連続する 2 桁の出現を検出できます。ただし、このメソッドは数字を別個のフィールドとして抽出しません。

PCRE を使用したカスタム関数:

高度な正規表現機能については、LIB_MYSQLUDF_PREG の実装を検討してください。このオープンソース ライブラリは、文字列から特定の一致を抽出できる PREG_CAPTURE、PREG_POSITION、PREG_REPLACE、PREG_RLIKE などの関数を提供します。

カスタマイズされた関数:

代替アプローチREGEXP_EXTRACT のようなカスタム関数を作成して、目的の正規表現パターンに一致する最長の部分文字列を抽出します。この機能を使用すると、追加の文字を含めずに数字をキャプチャするための開始位置と終了位置の調整を指定できます。

追加基準:

抽出された数字をフィルタリングする必要がある場合20 より大きいなどの特定の値については、数字を数値として取得した後、MySQL クエリに追加の基準を適用できます。 field.

例:

次のカスタム関数の実装を考えてみましょう:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  ...
  ...
END

クエリでこの関数を使用すると、2 つを抽出できます。元のテキストフィールドから連続した数字を取得し、値でフィルターします:

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits`
FROM `source`
WHERE `digits` > 20;

以上がMySQL テキスト フィールドから連続する数字を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。