لدينا أحيانًا متطلبات من فرق داخلية أخرى للبحث عن معلومات معينة. كان هذا الاستعلام مفيدًا لنا للعثور على ما نحتاجه.
-- [params]
-- user_id :user
-- int_list :category_ids = 0
SELECT
p.id AS post_id,
p.raw,
p.created_at,
p.topic_id
FROM posts p
WHERE p.user_id = :user
AND p.topic_id IN (
SELECT t.id
FROM topics t
WHERE (':category_ids' = 0 OR t.category_id IN (:category_ids))
AND t.archetype <> 'private_message'
)
AND p.raw LIKE '%```%'
لست متأكدًا مما إذا كنت تقوم بتصدير هذه البيانات، ولكن إذا كنت تستخدمها داخل مستكشف البيانات، فإن إحدى الحيل الرائعة التي أحب الاعتماد عليها لجميع عمليات البحث المستندة إلى المستخدم هي المعلمة user_id التي تمنحك مربع إدخال بحث سهل للغاية:
-- [params]
-- user_id :user
-- int_list :category_ids = 0
SELECT
p.id AS post_id,
p.raw,
p.created_at,
p.topic_id
FROM posts p
WHERE p.user_id = :user
AND p.topic_id IN (
SELECT t.id
FROM topics t
WHERE (':category_ids' = 0 OR t.category_id IN (:category_ids))
AND t.archetype <> 'private_message'
)
AND p.raw LIKE '%```%'
يتضمن هذا التنوع أيضًا سحر AS post_id لتحويل p.id إلى رابط قابل للاستخدام في النتائج المعروضة على الشاشة، بالإضافة إلى توسيع معلمة الفئة للسماح بجميع الفئات أو فئات متعددة أيضًا (0 للجميع، أو قائمة مفصولة بفواصل لعدة فئات. على سبيل المثال، 4, 5, 6).
يبدو هذا سريعًا نسبيًا، ولكن هناك أيضًا هذه النصيحة لطريقة بديلة للبحث عن الكلمات الرئيسية أيضًا:
لقد قمت بتحديث استعلامي الأصلي بهذا! لقد استخدمت في الواقع أداة بناء SQL الخاصة بـ Discourse AI لمساعدتي في تحقيق ذلك. لقد كانت تجربة رائعة وفرت عليّ ربما 4-5 ساعات كل أسبوع.
هناك معلمة category_id و group_id على الرغم من أنها ليست رائعة مثل معلمة user_id حيث تحصل على مربع تحديد (تعمل عن طريق كتابة الاسم ويقوم بتحويله إلى المعرف بشكل سحري). يمكن أن تكون مفيدة جدًا مع ذلك.
(أيضًا، هناك معلومة أخرى مفيدة بشكل عام يمكن أن تساعد في تحسين بعض الاستعلامات بمساعدة الذكاء الاصطناعي وهي Common Discourse data tips)