MySQL 文字列内の単語の抽出と出現数のカウント
質問:
MySQL を探しています。に似たクエリ以下:
select <second word in text> word, count(*) from table group by word;
MySQL で正規表現を使用して式からテキストを抽出する構文はありますか?
回答:
正規表現一致の抽出中mc0e が述べているように、デフォルトの MySQL 機能では直接はサポートされていません。組み合わせを使用して文字列内の特定の単語を抽出するソリューションがあります。文字列関数の例:
SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) )
使用法:
文字列から 2 番目の単語を抽出するには、次のクエリを使用できます:
SELECT SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) ) as string FROM (SELECT 'THIS IS A TEST' AS sentence) temp
これにより、「IS」という単語が返されます。出力。
注:
正規表現一致の抽出が繰り返し必要な場合は、クライアントで結果を後処理するか、正規表現抽出をサポートする MySQL 拡張機能をインストールすることを検討してください。
以上が文字列関数を使用して MySQL 文字列から 2 番目の単語を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。