Em Discourse, você tem a capacidade de aprimorar a aparência dos resultados de suas consultas no Data Explorer.
A formatação dos resultados de tabelas no Data Explorer pode ser feita usando sintaxe especial em suas consultas SQL, o que permite exibir seus dados de maneira mais intuitiva e visualmente atraente, diretamente na interface do Discourse.
Resultados de Tabela Formatados
Aqui está uma visão geral rápida da sintaxe e dos campos de dados que você pode usar para formatar os resultados de suas consultas:
SELECT
-- Para exibir uma citação, avatar/nome de usuário e um link para a postagem, use:
id AS post_id,
-- Para exibir o título do tópico, a contagem de postagens e um link para o tópico, use:
topic_id,
-- Para exibir o tempo em formato relativo (passe o mouse para ver a data completa), use:
updated_at as reltime$updated_at,
-- Para exibir um avatar/nome de usuário e um link para a página de atividade, use:
user_id,
-- Para exibir um nome de grupo e um link para o grupo, use:
(SELECT id FROM groups WHERE id = 12) AS group_id,
-- Para exibir um distintivo de categoria, nome e um link para a categoria, use:
(SELECT id FROM categories WHERE id = 22) AS category_id,
-- Para exibir um ícone de distintivo, nome e um link para o distintivo, use:
(SELECT id FROM badges WHERE id = 2) AS badge_id,
-- Para suprimir a formatação especial e usar apenas texto, use:
topic_id AS text$topic_id_text,
-- Para renderizar um valor como HTML, use:
'<h2>hello</h2>' AS html$html,
-- Para tratar uma coluna como um URL (se chamada `xyz_url`), e nomear o link usando o formato `nome,https://example.com`, use:
'Meta,https://meta.discourse.org' AS somecolumnname_url
FROM posts
WHERE topic_id = 32566
LIMIT 1
Abaixo está um exemplo de como os resultados de sua consulta podem parecer quando formatados usando a sintaxe acima:
Exemplos Individuais
Vamos discutir alguns desses recursos com mais detalhes:
Links de Postagem e Tópico
Você pode exibir um post_id como uma citação, avatar/nome de usuário e um link para a postagem usando AS post_id. Você também pode exibir um topic_id como um título de tópico, a contagem de postagens e um link para o tópico usando AS topic_id.
Exemplos:
SELECT
p.id AS post_id
FROM
posts p
SELECT
t.id AS topic_id
FROM
topics t
Tempo Relativo
A instrução AS reltime$updated_at exibirá um timestamp em formato relativo. Se você passar o mouse sobre um timestamp exibido neste formato, você também verá a data completa.
Exemplo:
SELECT
id,
updated_at AS reltime$updated_at
FROM
posts
ORDER BY updated_at DESC
Links de Usuário, Grupo, Categoria e Distintivo
Você pode exibir avatares/nomes de usuário, nomes de grupos, nomes de categorias e ícones/nomes de distintivos, todos vinculados às suas respectivas páginas usando AS user_id, AS group_id, AS category_id e AS badge_id.
Exemplos:
SELECT
u.id AS user_id
FROM
users u
SELECT
g.id AS group_id
FROM
groups g
SELECT
c.id AS category_id
FROM
categories c
SELECT
b.id as badge_id
FROM
badges b
Renderização de Texto e HTML
Você pode exibir resultados HTML como HTML renderizado usando AS html$html. Você também pode suprimir a formatação especial para usar apenas texto usando AS text$column_name
Exemplo:
SELECT
topic_id,
cooked AS html$html,
topic_id AS text$topic_id_text
FROM
posts
GROUP BY topic_id, cooked
Renderização de URL
Se você nomear uma coluna como xyz_url, ela será tratada como um URL. Você também pode nomear um link de URL usando o formato nome,https://example.com.
Exemplo:
SELECT
u.username,
'https://example_site.com/u/' || u.username || '/summary' AS profile_url,
'Profile Page,https://example_site.com/u/' || u.username || '/summary' AS profile_page_url
FROM
users u
WHERE u.username LIKE 'anon%'
Formatação Automática
Existem também certos campos SQL no Data Explorer que são formatados automaticamente. Estes incluem:
Links
Qualquer campo que contenha um URL será automaticamente formatado como um link clicável.
Exemplo:
SELECT
id,
remote_url
FROM remote_themes
IDs
IDs (como IDs de postagem, IDs de tópico, IDs de usuário, etc.) são frequentemente vinculados automaticamente às suas entidades respectivas quando referenciados em tabelas estrangeiras.
Exemplo:
SELECT
user_id
FROM
topics











