需求
通过 SQL 来实现随机漫游笔记的功能,如下:
SELECT * FROM blocks where type = 'd' ORDER BY random() LIMIT 20
但是会查出来许多只有标题,内容为空的文档(双链文档,内容还没写)
根据思源的数据库 blocks 字段,逐一看了没有对应可以过滤的字段,想问问大佬知道如何解决么?
附录:blocks 字段
字段名 | 字段值示例 | 说明 |
---|---|---|
id |
<span class="ne-text">20210104091228-d0rzbmm</span> |
内容块 ID |
parent_id |
<span class="ne-text">20200825162036-4dx365o</span> |
双亲块 ID 如果内容块是文档块则该字段为空 |
root_id |
<span class="ne-text">20200825162036-4dx365o</span> |
文档块 ID |
hash |
<span class="ne-text">a75d25c</span> |
<span class="ne-text">content</span> 字段的 SHA256 校验和 |
box |
<span class="ne-text">20210808180117-czj9bvb</span> |
笔记本 ID |
path |
<span class="ne-text">/20200812220555-lj3enxa/20210808180320-abz7w6k/20200825162036-4dx365o.sy</span> |
内容块所在文档路径 |
hpath |
<span class="ne-text">/0 请从这里开始/编辑器/排版元素</span> |
人类可读的内容块所在文档路径 |
name |
<span class="ne-text">一级标题命名</span> |
内容块名称 |
alias |
<span class="ne-text">一级标题别名</span> |
内容块别名 |
memo |
<span class="ne-text">一级标题备注</span> |
内容块备注 |
tag (v2.0.4 新增) |
<span class="ne-text">#标签1 #标签2# #标签3#</span> |
非文档块为块内包含的标签文档块为文档的标签 |
content |
<span class="ne-text">一级标题</span> |
去除了 Markdown 标记符的文本 |
fcontent (v1.9.9 新增) |
<span class="ne-text">第一个子块</span> |
存储容器块第一个子块的内容(1.9.9 添加) |
markdown |
<span class="ne-text"># 一级标题</span> |
包含完整 Markdown 标记符的文本 |
length |
<span class="ne-text">6</span> |
<span class="ne-text">markdown</span> 字段文本长度 |
type |
<span class="ne-text">h</span> |
内容块类型,参考⸢类型字段⸥ |
subtype |
<span class="ne-text">h1</span> |
内容块子类型,参考⸢子类型字段⸥ |
ial |
<span class="ne-text">{: id="20210104091228-d0rzbmm" updated="20210604222535"}</span> |
内联属性列表,形如 <span class="ne-text">{: name="value"}</span> |
sort |
<span class="ne-text">5</span> |
排序权重 数值越小排序越靠前 |
created |
<span class="ne-text">20210104091228</span> |
创建时间 |
updated |
<span class="ne-text">20210604222535</span> |
更新时间 |