ホームページ >データベース >mysql チュートリアル >MySQL テキスト フィールドから連続する数字を抽出し、追加の基準を適用する方法

MySQL テキスト フィールドから連続する数字を抽出し、追加の基準を適用する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 13:15:19629ブラウズ

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

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

MySQL では、次のクエリにより 2 桁の数字を含むテキスト フィールドを検出できます。

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'

ただし、これらの数値を別のフィールドとして操作するには、さらに処理が必要です。考えられる解決策は 2 つあります。

LIB_MYSQLUDF_PREG の使用

LIB_MYSQLUDF_PREG は、正規表現機能を強化する MySQL ライブラリです。文字列から一致を抽出できる PREG_CAPTURE などの関数が導入されています。

このライブラリを使用するには、MySQL サーバーにインストールする必要があります。インストールしたら、次のクエリを使用して連続した数字を抽出できます。

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`

カスタム MySQL 関数の使用

または、カスタム MySQL 関数を定義できます。抽出を実行します。たとえば、次の関数は、最初の最長一致する一連の数字を抽出します。

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END

この関数を使用するには、次のように呼び出します。

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

追加基準 ( Numbers > 20)

数値が次より大きい必要があるという基準を追加するには20、次の条件をいずれかのクエリの WHERE 句に追加するだけです:

WHERE `digits` > 20

以上がMySQL テキスト フィールドから連続する数字を抽出し、追加の基準を適用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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