格式化数据浏览器表格结果

在 Discourse 中,您可以增强 Data Explorer 查询结果的外观。

通过在 SQL 查询中使用特殊语法,可以在 Data Explorer 中格式化表格结果,从而直接在 Discourse 界面中以更直观、更具视觉吸引力的方式显示数据。

格式化表格结果

以下是可用于格式化查询结果的语法和数据字段的快速概述:

SELECT
-- 要显示引用、用户头像/用户名和帖子链接,请使用:
id AS post_id,

-- 要显示主题标题、帖子数和主题链接,请使用:
topic_id,

-- 要以相对格式显示时间(悬停可查看完整日期),请使用:
updated_at AS reltime$updated_at,

-- 要显示用户头像/用户名和活动页面链接,请使用:
user_id,

-- 要显示群组名称和群组链接,请使用:
(SELECT id FROM groups WHERE id = 12) AS group_id,

-- 要显示类别徽章、名称和类别链接,请使用:
(SELECT id FROM categories WHERE id = 22) AS category_id,

-- 要显示徽章图标、名称和徽章链接,请使用:
(SELECT id FROM badges WHERE id = 2) AS badge_id,

-- 要抑制特殊格式并仅使用文本,请使用:
topic_id AS text$topic_id_text,

-- 要将值渲染为 HTML,请使用:
'<h2>hello</h2>' AS html$html,

-- 要将列视为 URL(如果命名为 `xyz_url`),并使用 `name,https://example.com` 格式命名链接,请使用:
'Meta,https://meta.discourse.org' AS somecolumnname_url

FROM posts
WHERE topic_id = 32566
LIMIT 1

以下是使用上述语法格式化查询结果的外观示例:

单独示例

让我们更详细地讨论其中一些功能:

帖子和主题链接

您可以使用 AS post_idpost_id 显示为引用、用户头像/用户名和帖子链接。您还可以使用 AS topic_idtopic_id 显示为主题标题、帖子数和主题链接。

示例

SELECT
    p.id AS post_id
FROM
    posts p

SELECT
    t.id AS topic_id
FROM
    topics t

相对时间

AS reltime$updated_at 语句将以相对格式显示时间戳。如果悬停在此格式显示的时间戳上,您还将看到完整的日期。

示例

SELECT
    id,
    updated_at AS reltime$updated_at
FROM
    posts
ORDER BY updated_at DESC

用户、群组、类别和徽章链接

您可以通过使用 AS user_idAS group_idAS category_idAS badge_id 来显示用户头像/用户名、群组名称、类别名称和徽章图标/名称,所有这些都链接到它们各自的页面。

示例

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

文本和 HTML 渲染

您可以使用 AS html$html 将 HTML 结果显示为渲染的 HTML。您还可以通过使用 AS text$column_name 来抑制特殊格式,仅使用文本。

示例

SELECT
    topic_id,
    cooked AS html$html,
    topic_id AS text$topic_id_text
FROM
    posts
GROUP BY topic_id, cooked

URL 渲染

如果将列命名为 xyz_url,它将被视为 URL。您还可以使用 name,https://example.com 格式命名 URL 链接。

示例

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

自动格式化

Data Explorer 中还有一些自动格式化的 SQL 字段。这些包括:

链接

任何包含 URL 的字段都将自动格式化为可点击链接。

示例

SELECT
    id,
    remote_url
FROM remote_themes

ID

ID(如帖子 ID、主题 ID、用户 ID 等)在引用外键表时,通常会自动链接到它们各自的实体。

示例

SELECT
    user_id
FROM
    topics

此系列中的更多主题

11 个赞