REGEXP_REPLACE を使用して MySQL で単語をカウントする別のアプローチ
SQL データベースで単語をカウントするのは一般的なタスクですが、次の場合には困難になることがあります。標準的なソリューションでは正確な結果が得られません。この記事では、REGEXP_REPLACE 関数を利用した、MySQL での単語カウントの別のアプローチについて説明します。
REGEXP_REPLACE 関数は、.NET/C# の Regex.Replace 関数と同様に、指定された文字列に一致する部分文字列の置換を可能にします。正規表現。この場合の目標は、すべての空白文字を 1 つのスペースに置き換え、単語間の複数のスペースを効果的に削除することです。
クエリを考えてみましょう。
SELECT LENGTH(REGEXP_REPLACE(name, '[ ]+', ' ')) - LENGTH(REGEXP_REPLACE(name, '[^ ]+', '')) + 1 FROM table
このクエリは、最初に連続するすべての空白を置き換えます。 REGEXP_REPLACE 関数を使用して単一のスペースを含む文字を削除します。次に、元の文字列と、空白以外の文字が削除された変更後の文字列の長さの差を計算します。この差に 1 を加算すると、入力文字列内の単語の正確な数が得られます。
データ制御が可能な場合、データベースに挿入する前に入力を前処理して二重空白を削除すると、精度が向上します。さらに、単語数に頻繁にアクセスする必要がある場合は、効率的に取得するために、データ自体と一緒に単語数を計算して保存することをお勧めします。
以上がMySQL の REGEXP_REPLACE 関数を使用して正確な単語数をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。