ホームページ > データベース > mysql チュートリアル > MySQL および PostgreSQL で N 番目の単語を抽出し、その出現回数をカウントするにはどうすればよいですか?

MySQL および PostgreSQL で N 番目の単語を抽出し、その出現回数をカウントするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-08 21:30:12
オリジナル
256 人が閲覧しました

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

MySQL で N 番目の単語を抽出し、出現する単語をカウントする

この質問は、特定の単語を抽出できる MySQL クエリの可能性に関するものです。テキスト文字列から抽出し、その出現回数をカウントします。提供された例では、テキストから 2 番目の単語を抽出しようとしています。

Postgres 用のクエリ ソリューション

MySQL は正規表現の直接一致抽出をネイティブにサポートしていませんが、PostgreSQL などの他のデータベースはより直接的なアプローチを提供します。 PostgreSQL では、次のクエリを使用できます。

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;
ログイン後にコピー

このクエリは、SPLIT_PART 関数を使用して、スペースに基づいてテキストを個々の単語に分割し、2 番目の単語を抽出します。結果のテーブルでは、出現順に単語がグループ化されます。

MySQL の回避策

MySQL の場合は、正規表現の直接抽出がサポートされていないため、別のアプローチが必要です。回避策の 1 つは、部分文字列とロケート関数の組み合わせを使用することです。

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;
ログイン後にコピー

このクエリは、テキスト内の最初の単語の後ろにある最初のスペースの位置を特定します。次に、この位置にスペースの長さを追加して、2 番目の単語の抽出を開始します。抽出された部分文字列の長さは、次のスペースを検索し、そこから開始位置を減算することによって計算されます。

この方法では、異なる n 番目の単語を抽出するための調整が必要です。

以上がMySQL および PostgreSQL で N 番目の単語を抽出し、その出現回数をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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