通过 SQL 查询文档,内容为空的如何过滤?看了数据库结构,没有找到相关字段

本贴最后更新于 555 天前,其中的信息可能已经时异事殊

需求

通过 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> 更新时间
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19105 引用 • 71810 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6669 引用 • 29904 回帖 • 243 关注

相关帖子

被采纳的回答
  • 你试试这样看行不

    SELECT *  FROM blocks as t1 where   type = 'd'  
           and exists ( 	SELECT   *  	FROM blocks  	where   parent_id = t1.root_id 	and markdown <> '' )
    ORDER BY random() LIMIT 20
    
    

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 你试试这样看行不

    SELECT *  FROM blocks as t1 where   type = 'd'  
           and exists ( 	SELECT   *  	FROM blocks  	where   parent_id = t1.root_id 	and markdown <> '' )
    ORDER BY random() LIMIT 20
    
    
    1 回复
  • 其他回帖
  • MarsAuthority

    大佬牛批,感谢!

推荐标签 标签

  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 4 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 22 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    228 引用 • 1450 回帖 • 2 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 550 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 696 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖 • 2 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 186 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    398 引用 • 3437 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 207 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 30 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 520 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 293 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 22 关注
  • 996
    13 引用 • 200 回帖 • 2 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 182 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 532 回帖 • 718 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 52 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 413 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 601 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 1 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖