はい、これを追加する最善の方法は、クエリの WHERE ステートメントにセクションを追加し、トピック title でフィルタリングすることです。
例:
WHERE archetype = 'private_message'
AND subtype = 'system_message'
AND created_at BETWEEN :start_date AND :end_date
AND title = 'Greetings!'
これにより、すべての Greetings! メッセージが見つかります。
システムメッセージの中には実際のユーザーが含まれていないものがあるため、このタイプのクエリでは AND user_id > 0 の行を削除する必要がある場合があります。
ユーザーが削除する可能性のあるウェルカムメッセージもカウントするには、AND deleted_at IS NULL を削除することも検討してください。
正規表現(regex)を使用して、類似したタイトルのトピックに一致させることができます。
PostgreSQL で正規表現 (regex) を使用してトピックをタイトルで照合するには、文字列に対して正規表現を照合する ~ 演算子を使用できます。クエリ構造は次のようになります。
SELECT *
FROM topics
WHERE title ~ 'YourRegexPatternHere'
'YourRegexPatternHere' を、title フィールドに対して照合したい実際の正規表現パターンに置き換えてください。
たとえば、「Welcome」という単語(大文字と小文字を区別しない)を含むタイトルのトピックを検索する場合は、次のように使用できます。
SELECT *
FROM topics
WHERE title ~* 'Welcome'
~* 演算子は、大文字と小文字を区別しない照合に使用されます。