데이터 탐색기 테이블 결과 서식 지정

Discourse에서는 Data Explorer 쿼리 결과의 시각적 표현을 향상시킬 수 있는 기능을 제공합니다.

Data Explorer의 테이블 결과를 포맷팅하려면 SQL 쿼리에서 특수 구문을 사용해야 합니다. 이를 통해 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_id를 사용하여 post_id를 인용, 사용자 아바타/사용자 이름, 게시물 링크로 표시할 수 있습니다. 또한 AS topic_id를 사용하여 topic_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_id, AS group_id, AS category_id, AS 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개의 좋아요