# Blocos de código postados pelos usuários em uma categoria

**URL:** https://meta.discourse.org/t/user-posted-code-blocks-in-a-category/307712
**Category:** Data & reporting
**Tags:** sql-query
**Created:** [13 Maio , 2024 02:50 UTC](https://meta.discourse.org/t/user-posted-code-blocks-in-a-category/307712 "2024-05-13T02:50:37Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [13 Maio , 2024 06:17 UTC](https://meta.discourse.org/t/user-posted-code-blocks-in-a-category/307712/2 "2024-05-13T06:17:38Z")

</div>

Não tenho certeza se você está exportando esses dados, mas se você os estiver usando no explorador de dados, um dos truques interessantes que adoro usar para todas as consultas baseadas em usuários é o parâmetro `user_id`, que oferece uma caixa de entrada de consulta super fácil:

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

````

Esta variação também inclui a mágica `AS post_id` para transformar `p.id` em um link utilizável nos resultados exibidos na tela, além de expandir o parâmetro de categoria para permitir todas ou várias categorias (`0` para todas, ou uma lista separada por vírgulas para várias. ex. `4, 5, 6`).

Esta parece relativamente rápida, mas também há esta dica para um método alternativo para pesquisar palavras-chave:

> [@Search for keywords across posts](https://meta.discourse.org/t/search-for-keywords-across-posts/134553?u=jammydodger):
>
> This query will let you efficiently search for a keyword across all posts. It will be significantly faster than a posts.raw LIKE query, because it uses the postgres [full text search](https://www.postgresql.org/docs/9.5/textsearch.html) structured data -- [params] -- string :query SELECT p.id as post\_id FROM posts p LEFT JOIN post\_search\_data psd ON psd.post\_id = p.id WHERE psd.search\_data @@ TO\_TSQUERY(:query)

---

_[View the full topic](https://meta.discourse.org/t/user-posted-code-blocks-in-a-category/307712)._
