ホームページ >データベース >mysql チュートリアル >MySQL テキスト フィールドから連続する数字を抽出し、追加の基準を適用する方法
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 サイトの他の関連記事を参照してください。