نعم، أفضل طريقة لإضافة هذا هي إضافة قسم إلى عبارة WHERE في الاستعلام، والتصفية حسب عنوان الموضوع.
على سبيل المثال:
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، يمكنك استخدام المعامل ~، الذي يطابق تعبيرًا نمطيًا مع سلسلة نصية. سيكون هيكل الاستعلام كالتالي:
SELECT *
FROM topics
WHERE title ~ 'YourRegexPatternHere'
استبدل 'YourRegexPatternHere' بنمط التعبير النمطي الفعلي الذي تريد مطابقته مع حقل title.
على سبيل المثال، إذا كنت تبحث عن مواضيع بعناوين تحتوي على كلمة “Welcome” (غير حساسة لحالة الأحرف)، يمكنك استخدام:
SELECT *
FROM topics
WHERE title ~* 'Welcome'
يتم استخدام المعامل ~* للمطابقة غير الحساسة لحالة الأحرف.