跳转到内容

嵌入内容块

概述

嵌入内容块主要用于汇总所需内容块,通过 {{ 和 }} 将 SQL 脚本包裹起来并独占一行:{{ SELECT * FROM blocks WHERE content LIKE ‘%关键字%’ }},数据库表请参考这里。内容块/嵌入

示例

  • 查询内容中包含 内容块 的列表项:
    {{ SELECT * FROM blocks WHERE content LIKE '%内容块%' AND type = 'i' }}
  • 查询内容中同时包含 内容块 和 引用 段落块:
    {{ SELECT * FROM blocks WHERE content LIKE '%内容块%' AND content LIKE '%引用%' AND type = 'p') }}
  • 查询内容中同时包含 内容块 和 嵌入 的标题块并按更新时间降序结果取前 2 条:
    {{ SELECT * FROM blocks WHERE content LIKE '%内容块%' AND content LIKE '%嵌入%' AND type = 'h' ORDER BY updated DESC LIMIT 2 }}

案例一

查询同时包含 在思源中 和 核心概念 文本的段落块,并排除当前文档(否则当段落块也会包含到结果集中,因为当前段落同样包含了这两个文本,下面的案例类似):

“SELECT * FROM blocks WHERE content LIKE ‘%在思源中%’ AND content LIKE ‘%核心概念%’ AND hpath NOT LIKE ‘%嵌入内容块%‘“

案例二

查询同时包含标签 #内容块/嵌入# 和 #内容块/引用# 的段落块:

“SELECT * FROM blocks WHERE (content LIKE ’%#内容块/嵌入#%’ OR content LIKE ’%#内容块/引用#%’) AND hpath NOT LIKE ‘%嵌入内容块%‘“

案例三

有时候我们可能需要随机漫游显示内容块,以方便回顾。

“SELECT * FROM blocks ORDER BY random() LIMIT 3”

案例四

查询未完成的任务列表项,这里需要使用 markdown 字段而不是 content 字段:

“SELECT * FROM blocks WHERE markdown LIKE ’%[ ]%’ AND subtype = ‘t’ AND type = ‘i’”