Blocchi di codice postati dagli utenti in una categoria

A volte abbiamo requisiti da altri team interni per cercare determinate informazioni. Questa query ci è stata utile per trovare ciò di cui avevamo bisogno.

-- [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 Mi Piace

Non sono sicuro che tu stia esportando questi dati, ma se li stai utilizzando all’interno dell’esploratore di dati, uno dei trucchi utili su cui mi piace fare affidamento per tutte le ricerche basate sugli utenti è il parametro user_id che ti fornisce una casella di input di ricerca 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 '%```%'

Questa variazione include anche la magia AS post_id per trasformare p.id in un link utilizzabile nei risultati visualizzati, oltre ad espandere il parametro di categoria per consentire tutte o più categorie (0 per tutte, o un elenco separato da virgole per più categorie. es. 4, 5, 6).

Questo sembra relativamente veloce, ma c’è anche questo suggerimento per un metodo alternativo per cercare parole chiave:

4 Mi Piace
  1. Quel selettore di ID utente è fantastico!
  2. Esiste anche un selettore per la categoria?

Ho aggiornato la mia query originale con questo! Ho effettivamente utilizzato il costruttore SQL di Discourse AI per aiutarmi a raggiungere questo obiettivo. È stata un’esperienza incredibile che mi ha fatto risparmiare probabilmente 4-5 ore ogni settimana.

3 Mi Piace

Puoi anche estenderlo per gestire una versione della lista utenti, se ne desideri più di una. ad esempio:

-- [params]
-- user_list :users

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

Ci sono maggiori informazioni su alcuni degli altri parametri magici qui - Utilizing Parameters in Data Explorer Queries

Esiste un parametro category_id e group_id, anche se non sono eleganti come quello user_id in cui si ottiene una casella di selezione (funzionano digitando il nome e questo lo converte magicamente nell’ID). Possono comunque essere molto utili.

(Inoltre, un’altra informazione generalmente utile che può aiutare a perfezionare alcune delle query assistite dall’IA è Common Discourse data tips)

1 Mi Piace