データベース クエリの領域では、指定された文字列から特定のテキスト要素を抽出することが一般的な要件になることがあります。 。 MySQL は、堅牢な SQL 機能にもかかわらず、正規表現に一致するテキスト部分を直接抽出するためのネイティブ サポートがありません。
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 に適切な長さを取得します。
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 サイトの他の関連記事を参照してください。