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

MySQL テキスト フィールドから 20 を超える連続した数字を抽出してフィルタリングするにはどうすればよいですか?

DDD
リリース: 2024-11-30 18:37:14
オリジナル
444 人が閲覧しました

How Can I Extract and Filter Consecutive Digits Greater Than 20 from a MySQL Text Field?

MySQL での連続する 2 桁の抽出

提供された SQL クエリは、連続する 2 桁を含むテキスト フィールドを正常に識別します。ただし、これらの数値を別個のフィールドとして抽出するには、クエリに追加機能を組み込むことを検討してください。

オプション 1: LIB_MYSQLUDF_PREG の使用

このオープンソース ライブラリは、拡張された正規MySQL の式機能。 PREG_CAPTURE などの関数を提供し、文字列からの一致の抽出を可能にします。これらの関数にアクセスするには、このライブラリをインストールして構成します。

オプション 2: 正規表現抽出用のユーザー定義関数

最長一致する部分文字列を抽出するための REGEXP_EXTRACT のようなカスタム関数を作成します。提供された正規表現に基づきます。この関数は、'^' や '$' 区切り文字を含めるなど、特定の要件を処理するように微調整できます。

REGEXP_EXTRACT 関数は、特定のニーズに合わせて変更できます。

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  ... (function code goes here)
END
ログイン後にコピー

追加基準: より大きい数値20

数値をフィールドとして抽出したら、クエリに追加のフィルターを適用できます。

SELECT `id`, `number_extracted`
FROM (
  SELECT `id`, `originaltext`
  FROM `source`
  WHERE `originaltext` REGEXP '[0-9][0-9]'
) AS subquery
WHERE `number_extracted` > 20
ログイン後にコピー

この拡張クエリは、抽出された数値が 20 を超える行を返します。これらの手法を組み合わせることで、MySQL クエリを改良して、必要に応じて連続した数字を抽出および操作できます。

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

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