嵌入快 SQL 自定义属性查询

我想在 daily note 中汇总每日的任务,目前是想利用任务列表插件生成的自定义属性 plugin-task-list-handleAt,用 sql 匹配年月日是当天的块,尝试了好久都未能成功,论坛也找不到方法,请大佬帮忙写下 sql 代码,谢谢。

image.png

  • 思源笔记

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

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

    22330 引用 • 89352 回帖
  • Q&A

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

    8107 引用 • 36991 回帖 • 161 关注
被采纳的回答
  • 哦哦,这样应该可以吧

    SELECT * FROM blocks
    WHERE ial LIKE '%custom-plugin-task-list-handleAt="' || strftime('%Y%m%d', datetime('now')) || '%';
    

    如果不行,把你块自定义属性名截图看看,比如

    image.png

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 大佬,我的块有自定义属性,属性值是 20241201211510 这样的日期格式,我想用 sql 匹配当天的的年月日,比如今天的就是匹配自定义属性值是 20241102 开头的块。明天会自动更新为匹配自定义属性值是 20241103 开头的块。

    1 回复
  • 哦哦,这样应该可以吧

    SELECT * FROM blocks
    WHERE ial LIKE '%custom-plugin-task-list-handleAt="' || strftime('%Y%m%d', datetime('now')) || '%';
    

    如果不行,把你块自定义属性名截图看看,比如

    image.png

    3 回复
  • 可以了大佬,非常感谢。截图帖子里有。

    1 回复
  • 哦哦,恭喜 ^ω^

  • 大佬,有没办法把这个自定义属性的时间格式在模板列显示出来,这样就能实现数据库获取到这个任务的时间了。就可以充分利用到任务列表那个插件的日历视图了,而不是在数据库里设置时间插件那里看不到日期要再设置一次

    2 回复
  • ONIONLYONE 1 评论

    佬,能细说一下想要达到的应用场景吗?想学习一下。

    数据库模版列代码 - 获取绑定的任务列表块的状态 0 看我这个贴,我主要用数据库管理任务,把子任务添加到数据库里,能把这个插件的时间属性带进数据库里就不用重复设置了
    5kyfkr
  • 你试试这个可以吗

    .action{ if index . "custom-avs" }
    .action{ $id := .id }
    .action{ $blocks := queryBlocks "SELECT * FROM blocks WHERE id = '?'" $id }
    .action{ $b := first $blocks }
    .action{ $match := regexFind "custom-plugin-task-list-handleAt=\"([0-9]+)\"" $b.IAL }
    .action{ $value := trimPrefix "custom-plugin-task-list-handleAt=\"" $match }
    .action{ $value := trimSuffix "\"" $value }
    .action{ $value }
    .action{ end }
    

    仅保留年月日版

    .action{ if index . "custom-avs" }
    .action{ $id := .id }
    .action{ $blocks := queryBlocks "SELECT * FROM blocks WHERE id = '?'" $id }
    .action{ $b := first $blocks }
    .action{ $match := regexFind "custom-plugin-task-list-handleAt=\"([0-9]+)\"" $b.IAL }
    .action{ $value := trimPrefix "custom-plugin-task-list-handleAt=\"" $match }
    .action{ $value := trimSuffix "\"" $value }
    .action{ $year := substr 0 4 $value }
    .action{ $month := substr 4 6 $value }
    .action{ $day := substr 6 8 $value }
    .action{ $year }-.action{ $month }-.action{ $day }
    .action{ end }
    
    1 操作
    wilsons 在 2024-11-02 20:12:18 更新了该回帖
  • 佬,我刚刚发现 daily note 文档中自定义属性,该值刚好是 20241102 这样的格式,能否把匹配当日日期变成匹配嵌入块所在的 daily note 文档自定义属性值呢,我现在的方案如果查看昨日 daily note 中的嵌入块,显示的也是今天的任务。另外,如果要加一天,也就是显示明天的任务,有办法实现吗,感谢。

    1 回复
  • 用这个试试,粘贴到 SQL 查询文本框中即可

    //!js
    return (async () => {
        // sql查询语句
        const sql = `SELECT * FROM blocks WHERE ial LIKE '%custom-plugin-task-list-handleAt="${getCurrDocCustomAttr()}%';`;
    
        // 查询逻辑
        const result = await query(sql);
        if(result.length > 0) {
            return result.map(row=>row.id);
        }
        return [];
    
        // 获取当前文档的自定义属性值
        function getCurrDocCustomAttr() {
            const attributes = Array.from(item.parentElement.attributes);
            const attr = attributes.find(attr=>attr.name.startsWith('custom-dailynote'));
            return attr ? attr.value : '';
        }
    
        // 查询数据库
        async function query(sql) {
            const result = await fetchSyncPost('/api/query/sql', { "stmt": sql });
            if (result.code !== 0) {
                console.error("查询数据库出错", result.msg);
                return [];
            }
            return result.data;
        }
    })();
    
    1 回复
  • 就是我想要的效果,原来这么复杂,我试了几小时放弃了 😂 。感谢大佬。

    另外我想再问下:

    1 如果要显示明天的,就是今天的加一天要怎么改。

    2 查询不到结果可以返回文本“今天没有任务了”,我记得之前自动添加到数据库的那个代码可以返回添加了多少文档,不知道这个可不可以。

    1 回复
  • 查询明天的可以用这个 SQL

    SELECT * FROM blocks WHERE ial LIKE '%custom-plugin-task-list-handleAt="' || strftime('%Y%m%d', datetime('now', '+1 days')) || '%';
    

    自定义返回结果有点复杂,建议使用思源自带的"不存在符合条件的内容块"提示即可。

    如果有兴趣研究,可参考 建议增加“将文内所有 x 级标题转化为 x 级标题” - wilsons 的回帖

    1 回复
  • 好的好的,太感谢大佬了 ORZ

  • YRJ0422

    听起来你可以使用集市里面的极简 TODO 模版

    1 回复
  • 感谢推荐,我也有看过那个模板的介绍,但是那个模板是每日的日程是写在 daily note 里面的吧?我的日程是写在其他笔记里,在 daily note 里面汇总,有关还是不一样。

    1 回复
  • YRJ0422

    一样可以汇总,需要配合快速添加属性插件,不过我技术有限,除了模版生成的,其他地方手动添加的块属性都保持一致一个时间值,也可以手动加属性不用插件就是麻烦点

    1 回复
  • 刚刚试了下。改了下极简 todo 的模板也实现了功能,我是配合任务列表这个插件使用的。

    1 回复
    2 操作
    ONIONLYONE 在 2024-11-05 17:38:54 更新了该回帖
    ONIONLYONE 在 2024-11-05 16:15:12 更新了该回帖
  • YRJ0422 1

    参考我这个使用方法,也挺方便的

请输入回帖内容 ...

推荐标签 标签

  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 2 关注
  • Vue.js

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

    266 引用 • 665 回帖 • 1 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 3 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 437 关注
  • SendCloud

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

    2 引用 • 8 回帖 • 483 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖 • 1 关注
  • 微服务

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

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

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

    6 引用 • 14 回帖 • 2 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    351 引用 • 1813 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 911 回帖 • 245 关注
  • Kafka

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

    36 引用 • 35 回帖
  • etcd

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

    5 引用 • 26 回帖 • 529 关注
  • TensorFlow

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

    20 引用 • 19 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖
  • 分享

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

    248 引用 • 1792 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 125 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 85 关注
  • OpenStack

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

    10 引用 • 4 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 432 关注