思源 sql 查询结果与 sqlitestudio 结果不一致,后者符合预期

本贴最后更新于 878 天前,其中的信息可能已经时移世改

日记系统采用默认配置,使用周报模板如下:

{{select * from blocks where id in (select id from (select id,type,subtype,parent_id as id2 from blocks)as a left join (select id as id2,type as type2,parent_id as id3 from blocks)as b on a.id2=b.id2 left join (select id as id3,type as type3,content as content3 from blocks)as c on b.id3=c.id3 where a.type='i' and a.subtype='t' and c.type3='h' and c.content3 like '%版本开发%')and markdown like '* [_] %' and markdown not like '* [_] ~~%~~' and path like '/20211025140243-y1q7v8d/%/%-%-%' and  (case when updated>created then updated else created end) > (select max(substr(hpath,21,4)||substr(hpath,26,2)||substr(hpath,29,2)||'9') from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%-%-%' and root_id!='.action{.id}') and hpath <= (select hpath from blocks where id= '.action{.id}')}}

在日记页使用模板后,sql 如下:

select * from blocks where id in (select id from (select id,type,subtype,parent_id as id2 from blocks)as a left join (select id as id2,type as type2,parent_id as id3 from blocks)as b on a.id2=b.id2 left join (select id as id3,type as type3,content as content3 from blocks)as c on b.id3=c.id3 where a.type='i' and a.subtype='t' and c.type3='h' and c.content3 like '%版本开发%')and markdown like '* [_] %' and markdown not like '* [_] ~~%~~' and path like '/20211025140243-y1q7v8d/%/%-%-%' and  (case when updated>created then updated else created end) > (select max(substr(hpath,21,4)||substr(hpath,26,2)||substr(hpath,29,2)||'9') from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%-%-%' and root_id!='20211101100623-359fk4i') and hpath <= (select hpath from blocks where id= '20211101100623-359fk4i')

主要逻辑是筛选出上次周报所在日记日期之后及本日记日期之前(包括本日期)创建或变更的版本开发任务,并排除掉子任务。

在 sqlitestudio 中使用符合预期,在思源中使用,没有排除掉上次周报已经覆盖的任务内容。

怀疑是以下逻辑有问题:

(case when updated>created then updated else created end) > (select max(substr(hpath,21,4)||substr(hpath,26,2)||substr(hpath,29,2)||'9') from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%-%-%' and root_id!='.action{.id}')
  • 思源笔记

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

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

    18121 引用 • 66851 回帖
  • Q&A

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

    6353 引用 • 28546 回帖 • 265 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • duyujie

    替代方案:

    {{select * from blocks where id in (select id from (select id,type,subtype,parent_id as id2 from blocks)as a left join (select id as id2,type as type2,parent_id as id3 from blocks)as b on a.id2=b.id2 left join (select id as id3,type as type3,content as content3 from blocks)as c on b.id3=c.id3 where a.type='i' and a.subtype='t' and c.type3='h' and c.content3 like '%版本开发%')and markdown like '* [_] %' and markdown not like '* [_] ~~%~~' and path like '/20211025140243-y1q7v8d/%/%/%' and  substr((case when updated>created then updated else created end),1,8) > (select max(replace(substr(hpath,21,10),'-','')) from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%/%' and root_id!='.action{.id}') and hpath <= (select hpath from blocks where id= '.action{.id}')}}
    

    也就是把

    (case when updated>created then updated else created end) > (select max(substr(hpath,21,4)||substr(hpath,26,2)||substr(hpath,29,2)||'9') from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%-%-%' and root_id!='.action{.id}')
    

    替换为

    substr((case when updated>created then updated else created end),1,8) > (select max(replace(substr(hpath,21,10),'-','')) from blocks where markdown = '# 周报' and path like '/20211025140243-y1q7v8d/%/%/%' and root_id!='.action{.id}')
    
  • 其他回帖
  • duyujie

    一致的,我是直接拿了嵌入模块里的 sql,来通过另一个引擎访问 temp 目录下的数据库。一样的 sql 一样的 siyuan.db,没道理不一样的结果。

  • 可能是实参不一致?

    4 回复
  • 查看全部回帖

推荐标签 标签

  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 582 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 100 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 489 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 1 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 19 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 429 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖 • 2 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 1 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 352 关注
  • 小薇

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

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

    34 引用 • 467 回帖 • 689 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    475 引用 • 899 回帖
  • OkHttp

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

    16 引用 • 6 回帖 • 54 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    9 引用 • 83 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1446 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 498 关注
  • 分享

    有什么新发现就分享给大家吧!

    240 引用 • 1729 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 125 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 690 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    261 引用 • 662 回帖 • 1 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 434 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    178 引用 • 120 回帖 • 4 关注
  • OpenStack

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

    10 引用 • 9 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 674 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 16 关注