En Discourse, tienes la capacidad de mejorar la apariencia de los resultados de tus consultas del Explorador de Datos.
El formato de los resultados de las tablas en el Explorador de Datos se puede hacer utilizando una sintaxis especial en tus consultas SQL, lo que te permite mostrar tus datos de una manera más intuitiva y visualmente atractiva, directamente dentro de la interfaz de Discourse.
Resultados de Tabla con Formato
Aquí tienes un resumen rápido de la sintaxis y los campos de datos que puedes usar para formatear los resultados de tus consultas:
SELECT
-- Para mostrar una cita, avatar/nombre de usuario y un enlace a la publicación, usa:
id AS post_id,
-- Para mostrar el título del tema, el recuento de publicaciones y un enlace al tema, usa:
topic_id,
-- Para mostrar el tiempo en formato relativo (pasa el ratón para ver la fecha completa), usa:
updated_at as reltime$updated_at,
-- Para mostrar un avatar/nombre de usuario y un enlace a la página de actividad, usa:
user_id,
-- Para mostrar un nombre de grupo y un enlace al grupo, usa:
(SELECT id FROM groups WHERE id = 12) AS group_id,
-- Para mostrar una insignia de categoría, nombre y un enlace a la categoría, usa:
(SELECT id FROM categories WHERE id = 22) AS category_id,
-- Para mostrar un icono de insignia, nombre y un enlace a la insignia, usa:
(SELECT id FROM badges WHERE id = 2) AS badge_id,
-- Para suprimir el formato especial y usar solo texto, usa:
topic_id AS text$topic_id_text,
-- Para renderizar un valor como HTML, usa:
'<h2>hello</h2>' AS html$html,
-- Para tratar una columna como una URL (si se llama `xyz_url`), y nombrar el enlace usando el formato `nombre,https://ejemplo.com`, usa:
'Meta,https://meta.discourse.org' AS somecolumnname_url
FROM posts
WHERE topic_id = 32566
LIMIT 1
A continuación, se muestra un ejemplo de cómo podrían verse los resultados de tu consulta cuando se formatean utilizando la sintaxis anterior:
Ejemplos Individuales
Analicemos algunas de estas características con más detalle:
Enlaces a Publicaciones y Temas
Puedes mostrar un post_id como una cita, avatar/nombre de usuario y un enlace a la publicación usando AS post_id. También puedes mostrar un topic_id como un título de tema, el recuento de publicaciones y un enlace al tema usando AS topic_id.
Ejemplos:
SELECT
p.id AS post_id
FROM
posts p
SELECT
t.id AS topic_id
FROM
topics t
Tiempo Relativo
La declaración AS reltime$updated_at mostrará una marca de tiempo en formato relativo. Si pasas el ratón sobre una marca de tiempo mostrada en este formato, también verás la fecha completa.
Ejemplo:
SELECT
id,
updated_at AS reltime$updated_at
FROM
posts
ORDER BY updated_at DESC
Enlaces a Usuarios, Grupos, Categorías y Badges
Puedes mostrar avatares/nombres de usuario, nombres de grupos, nombres de categorías e iconos/nombres de badges, todos enlazados a sus páginas respectivas utilizando AS user_id, AS group_id, AS category_id y AS badge_id.
Ejemplos:
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
Renderizado de Texto y HTML
Puedes mostrar resultados HTML como HTML renderizado utilizando AS html$html. También puedes suprimir el formato especial para usar solo texto utilizando AS text$nombre_columna
Ejemplo:
SELECT
topic_id,
cooked AS html$html,
topic_id AS text$topic_id_text
FROM
posts
GROUP BY topic_id, cooked
Renderizado de URL
Si nombras una columna como xyz_url, se tratará como una URL. También puedes nombrar un enlace URL utilizando el formato nombre,https://ejemplo.com.
Ejemplo:
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%'
Formato Automático
También hay ciertos campos SQL en el Explorador de Datos que se formatean automáticamente. Estos incluyen:
Enlaces
Cualquier campo que contenga una URL se formateará automáticamente como un enlace clickeable.
Ejemplo:
SELECT
id,
remote_url
FROM remote_themes
IDs
Los IDs (como IDs de publicaciones, IDs de temas, IDs de usuarios, etc.) a menudo se enlazan automáticamente a sus entidades respectivas cuando se referencian en tablas externas.
Ejemplo:
SELECT
user_id
FROM
topics











