ホームページ > データベース > mysql チュートリアル > MySQL で n 番目の単語を抽出し、単語の出現をカウントする方法は?

MySQL で n 番目の単語を抽出し、単語の出現をカウントする方法は?

DDD
リリース: 2024-12-08 03:32:11
オリジナル
923 人が閲覧しました

How to Extract the nth Word and Count Word Occurrences in MySQL?

MySQL 文字列内の n 番目の単語の抽出と単語の出現数のカウント

データベース クエリの領域では、指定された文字列から特定のテキスト要素を抽出することが一般的な要件になることがあります。 。 MySQL は、堅牢な SQL 機能にもかかわらず、正規表現に一致するテキスト部分を直接抽出するためのネイティブ サポートがありません。

n 番目の単語の抽出

MySQL 文字列から n 番目の単語を抽出するには、 SUBSTRING 関数と LOCATE 関数。 SUBSTRING を使用すると、文字列の特定のセクションを抽出できます。一方、LOCATE は、指定された部分文字列の最初の出現箇所を検索します。

文字列「This is a test」から 2 番目の単語を抽出するとします。次のコード サンプルは、これを示しています。

SUBSTRING(
  sentence,
  LOCATE(' ', sentence) + CHAR_LENGTH(' '),
  LOCATE(' ', sentence,
  ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') )
)
ログイン後にコピー

このコードは、まず LOCATE を使用して最初のスペース文字の位置を特定します。次に、2 番目の単語の先頭に移動するスペース文字の長さを追加します。最後に、次のスペース文字を見つけてその長さを計算し、それを減算して SUBSTRING に適切な長さを取得します。

Word Occurrence Count

MySQL 文字列内の単語の出現数をカウントするには、GROUP BY句を利用します。さまざまなテキストエントリを含む「text」という名前の列を含むテーブルがあるとします。次のクエリは、「text」列内の各単語の出現をカウントします。

SELECT word, COUNT(*)
FROM (
  SELECT sentence, SUBSTRING_INDEX(sentence, ' ', occurrence) AS word
  FROM (
    SELECT sentence,
    ROW_NUMBER() OVER (PARTITION BY sentence ORDER BY LOCATE(' ', sentence)) AS occurrence
    FROM table_name
  ) t
) subquery
GROUP BY word
ログイン後にコピー

このクエリは、サブクエリを使用して文から各単語を抽出し、それらを「word」列に割り当てます。 ROW_NUMBER は、文内の各単語に出現番号を割り当てるために使用され、各単語が一意の出現値を持つようにします。次に、外側のクエリは、抽出された「単語」ごとにグループ化して、その出現回数をカウントします。

以上がMySQL で n 番目の単語を抽出し、単語の出現をカウントする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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