Blocs de code postés par l'utilisateur dans une catégorie

Nous avons parfois des exigences d’autres équipes internes pour rechercher certaines informations. Cette requête nous a été utile pour trouver ce dont nous avions besoin.

-- [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 '%```%'
5 « J'aime »

Je ne suis pas sûr si vous exportez ces données, mais si vous les utilisez dans l’explorateur de données, l’un des astuces pratiques sur lesquelles j’aime m’appuyer pour toutes les recherches basées sur les utilisateurs est le paramètre user_id qui vous donne une boîte de saisie de recherche super facile :

-- [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 '%```%'

Cette variation inclut également la magie AS post_id pour transformer p.id en un lien utilisable dans les résultats à l’écran, ainsi que l’expansion du paramètre de catégorie pour permettre toutes les catégories ou plusieurs catégories (0 pour toutes, ou une liste séparée par des virgules pour plusieurs. par exemple, 4, 5, 6).

Celle-ci semble relativement rapide, mais il y a aussi cette astuce pour une méthode alternative de recherche de mots-clés :

4 « J'aime »
  1. Ce sélecteur d’ID utilisateur est incroyable !
  2. Existe-t-il également un sélecteur pour la catégorie ?

J’ai mis à jour ma requête d’origine avec cela ! J’ai en fait utilisé le constructeur SQL de Discourse AI pour m’aider à y parvenir. Ce fut une expérience incroyable qui m’a fait économiser probablement 4 à 5 heures chaque semaine.

3 « J'aime »

Vous pouvez également l’étendre pour gérer une version de liste d’utilisateurs si vous le souhaitez. Par exemple :

-- [params]
-- user_list :users

SELECT
    id AS user_id,
    created_at
FROM users
WHERE id IN (:users)

Il y a plus d’informations sur certains des autres paramètres magiques ici - Utilizing Parameters in Data Explorer Queries

Il existe un paramètre category_id et group_id, bien qu’ils ne soient pas aussi pratiques que celui de user_id où vous obtenez une boîte de sélection (ils fonctionnent en tapant le nom et il le convertit magiquement en id). Ils peuvent toujours être très utiles.

(De plus, une autre information généralement utile qui peut aider à affiner certaines des requêtes assistées par l’IA est Common Discourse data tips)

1 « J'aime »