SyTlr
关注
65378 号成员,2021-02-16 08:28:57 加入
1.2k
个人主页 浏览
310
帖子 + 回帖 + 评论
165h27m
在线时长
  • 请问有什么方法可以提升使用 sql 语句查询笔记的效率嘛

    2025-03-28 01:48

    这是查询单个标签笔记的 sql

    WITH RECURSIVE TargetBook AS ( -- 这里定义目标书籍名称 SELECT '《我们纯真的青春》' AS book_name ), TargetExclusion AS ( -- 这里定义需要排除的内容 SELECT '%((%00-功能测试文档%))%' AS exclusion_pattern ), FilteredBlocks AS ( -- 只保留 hpath 符合条件的内容块 SELECT * FROM blocks WHERE hpath LIKE '%/DailyNote-时间索引/%' AND content NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除内容块中的不相关内容 ), BookChapters AS ( -- 选取目录超级块(确保是指定书籍的目录) SELECT b.id, b.content, b.markdown FROM FilteredBlocks AS b JOIN TargetBook tb ON b.fcontent LIKE tb.book_name || '-%' WHERE b.type = 's' AND b.markdown NOT LIKE '{{{col%' AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除不相关内容块 UNION ALL -- 递归查找属于该书籍目录的 **所有章节块(标题 h)** SELECT b2.id, b2.content, b2.markdown FROM FilteredBlocks AS b2 JOIN BookChapters AS bc ON b2.parent_id = bc.id WHERE b2.type = 'h' -- 只递归查找标题块 AND b2.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除不相关内容块 ), RelatedNotes AS ( -- 直接包含对该书籍的反链引用的内容块 SELECT b.id, b.content, b.markdown, b.type, b.hpath FROM FilteredBlocks AS b JOIN TargetBook tb ON b.markdown LIKE '%((%' || tb.book_name || '%))%' AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除不相关内容块 UNION -- 通过 refs 表反链引用书籍章节的内容块 SELECT b.id, b.content, b.markdown, b.type, b.hpath FROM FilteredBlocks AS b JOIN refs AS r ON b.id = r.def_block_id WHERE r.def_block_id IN (SELECT id FROM BookChapters) AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除不相关内容块 ), -- 递归查找 `RelatedNotes` 的所有子块 RecursiveChildren AS ( SELECT b.* FROM FilteredBlocks b WHERE b.parent_id IN (SELECT id FROM RelatedNotes) UNION SELECT b.* FROM FilteredBlocks b JOIN RecursiveChildren rc ON b.parent_id = rc.id WHERE b.content NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) -- 排除子块中的不相关内容 ), ImportantPoints AS ( -- 筛选出 “#功能标签#” 的内容块 SELECT b.* FROM RecursiveChildren b WHERE b.tag LIKE '%精彩文案%#%' -- 确保包含 #功能标签# AND b.tag NOT LIKE '%#【专辑】%读书笔记#%' -- 确保不包含 #【专辑】%读书笔记# AND b.type = 'i' ) SELECT * FROM ImportantPoints ORDER BY CREATED;
  • 请问有什么方法可以提升使用 sql 语句查询笔记的效率嘛

    2025-03-28 01:47

    emmm,用 gpt 重新写了一个查询语句,性能高了很多很多,贴在这里记录一下吧

    WITH RECURSIVE TargetBook AS ( -- 目标书籍 SELECT '《最好的我们》' AS book_name ), TargetExclusion AS ( -- 需要排除的内容 SELECT '%((%00-功能测试文档%))%' AS exclusion_pattern ), FilteredBlocks AS ( -- 只保留符合条件的内容块 SELECT * FROM blocks WHERE hpath LIKE '%/DailyNote-时间索引/%' AND content NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) ), BookChapters AS ( -- 选取目录超级块(确保是指定书籍的目录) SELECT b.id, b.content, b.markdown FROM FilteredBlocks AS b JOIN TargetBook tb ON b.fcontent LIKE tb.book_name || '-%' WHERE b.type = 's' AND b.markdown NOT LIKE '{{{col%' AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) UNION ALL -- 递归查找属于该书籍目录的所有章节块(标题 h) SELECT b2.id, b2.content, b2.markdown FROM FilteredBlocks AS b2 JOIN BookChapters AS bc ON b2.parent_id = bc.id WHERE b2.type = 'h' AND b2.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) ), RelatedNotes AS ( -- 直接包含对该书籍的反链引用的内容块 SELECT b.id, b.content, b.markdown, b.type, b.hpath FROM FilteredBlocks AS b JOIN TargetBook tb ON b.markdown LIKE '%((%' || tb.book_name || '%))%' AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) UNION -- 通过 refs 表反链引用书籍章节的内容块 SELECT b.id, b.content, b.markdown, b.type, b.hpath FROM FilteredBlocks AS b JOIN refs AS r ON b.id = r.def_block_id WHERE r.def_block_id IN (SELECT id FROM BookChapters) AND b.markdown NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) ), -- 递归查找 RelatedNotes 的所有子块 RecursiveChildren AS ( SELECT b.* FROM FilteredBlocks b WHERE b.parent_id IN (SELECT id FROM RelatedNotes) UNION SELECT b.* FROM FilteredBlocks b JOIN RecursiveChildren rc ON b.parent_id = rc.id WHERE b.content NOT LIKE (SELECT exclusion_pattern FROM TargetExclusion) ), TagList AS ( -- 统一管理所有要统计的标签 SELECT '内容有感' AS 笔记类型, '%内容有感%#%' AS tag_pattern UNION ALL SELECT '内容讨论', '%内容讨论%#%' UNION ALL SELECT '精彩文案', '%精彩文案%#%' UNION ALL SELECT '重要观点', '%重要观点%#%' ), DesiredTags AS ( -- 筛选出符合 TagList 里定义标签的内容块 SELECT b.*, t.笔记类型 FROM RecursiveChildren b JOIN TagList t ON b.tag LIKE t.tag_pattern WHERE b.tag NOT LIKE '%#【专辑】%读书笔记#%' AND b.type = 'i' ), TagCounts AS ( -- 统计每个标签的笔记数量 SELECT t.笔记类型, COUNT(b.id) AS 数量 FROM TagList t LEFT JOIN DesiredTags b ON t.笔记类型 = b.笔记类型 GROUP BY t.笔记类型 ) -- 最终统计结果,保证所有标签都显示,即使没有笔记 SELECT t.笔记类型, COALESCE(tc.数量, 0) AS 数量 FROM TagList t LEFT JOIN TagCounts tc ON t.笔记类型 = tc.笔记类型 ORDER BY t.笔记类型;
  • 请问有什么方法可以提升使用 sql 语句查询笔记的效率嘛

    2025-03-26 20:14

    我的使用场景是,想把把阅读书本时产生的笔记 按不同的功能标签 汇总起来,另外统计不同的功能标签的笔记数量。

    所以设计了一个类似下面的结构:

    - [[书本名字反链]],#读书笔记标签# ## 书本章节1 ### [[主题反链]] - #功能标签1# 笔记内容

    因为 功能标签的父级块不是书本名字,所以就想到 多嵌套一层查询条件,通过匹配查找书本目录这个超级块里的章节名称(标题块)来找到对应的笔记内容 ,实现曲线救国

    帖子里的语句 是 汇总统计了 在这个结构下 4 个不同功能标签 对应的笔记数量

  • 思源安卓 v3.1.26: Toolbar 不見了 的問題仍未修復,求救

    2025-03-26 18:49

    A 佬在群里发了一个最新的 3.1.26,那个已经修复了

  • 思源新版本安卓端编辑菜单栏被挡住

    2025-03-26 10:59

    好哦 🎉 D 大辛苦了!

  • 思源新版本安卓端编辑菜单栏被挡住

    2025-03-25 17:37

    好嘞 ~ 那个黑屏的问题我再排查一下

  • 思源新版本安卓端编辑菜单栏被挡住

    2025-03-25 16:04

    就类似这样,切换导航模式之后再切回思源的界面就黑屏了,即使划掉关闭再打开也没有刷新,需要在设置里强制结束运行重启才能继续使用

  • 思源新版本安卓端编辑菜单栏被挡住

    2025-03-25 14:39

    型号:荣耀 100
    系统:安卓 15

    对了,这个型号和系统下还有一个问题:

    在使用全面屏手势的时候,切到多任务界面后再切回思源的界面,3.1.25 版本的思源会变成黑屏,没有刷新界面,需要在设置里手动强制结束运行后重启才能打开

  • 思源笔记列表使用指南

    2025-03-19 23:27

    确实,列表块在思源里无所不包,发现这个特性之后,之前用超级块打包的小内容,现在都直接塞进列表块了,简单直接,真是好用到飞起,

  • 最近好像都是细节优化,啥时候来点大的

    2025-03-18 13:38

    同求!(超大声)

  • 思源什么时候支持画布或白板

    2025-03-16 15:59

    是的,能和内容块联动的白板才能完全发挥思源的价值,不然我从外面整一个白板链接丢在思源里,也一样可以

  • 请问数据库除了主键,还有什么字段可以使用双链呀

    2025-03-01 11:20

    不是数据库的条目哦,是其他内容块

  • 思源安卓端伺服在手机熄屏休眠,或者切到后台一段时间总是会断掉链接,有什么好的解决办法吗?

    2025-02-27 18:16

    是 google play 上下载吗,我试了 2 次都安装不上。连闪退的机会都没有

  • pink-room 主题及 StarDust 主题恢复更新

    2025-02-25 10:22

    哇,原来 pinkroom 是大佬的作品,一直在用,太好看了!感谢大佬

  • 在文档使用自定义图标,不应该使用插入文档图标的逻辑,引用时不能显示

    2025-02-06 22:31

    这样子,所以内置的图标并不是用图片格式存储的

  • 在文档使用自定义图标,不应该使用插入文档图标的逻辑,引用时不能显示

    2025-02-06 22:11

    这两个都是不是文档块,被引用的是标题块,知乎和彩虹都应该是作为标题文本,但是现在的对自定义图标的处理逻辑似乎是当成了文档的图标

  • 你目前最需要哪一种数据库视图?

    2025-01-08 13:59

    看到大家都在说画廊可以做影视库啥的,我觉得,画廊还能做卡片笔记预览啊

    image.png

  • 请问下为什么在文档下的块创建引用时不能搜索到文档本身的名字啊

    2025-01-04 11:27

    enne~ 我之前也是这样子直接复制引用,后来突然想到,可不可以在模板里面新建一个引用的文档 A,但这个文档 A 之前并没有被创建,然后下次再次调用这个模板时可以直接引用到这个文档 A,就像 Obsidian 一样

  • 安卓端 3.1.17 版本在标题使用引用时反链面板显示失效

    2025-01-04 11:21

    噢噢这样子,好的,谢谢 D 大

  • 思源“块”的换行取消了?

    2025-01-01 11:44

    咦?大哥你也在参与 siyuan 开发呀

  • 安卓端 3.1.17 版本在标题使用引用时反链面板显示失效

    2024-12-29 09:29

    你在 github 上的那个问题,我刚才也试了一下,好像标题下方是显示不了的 @JeffreyChen

    如果是列表块的话,只有真正缩进了的才能在连面板的子块里显示 @88250

  • 安卓端 3.1.17 版本在标题使用引用时反链面板显示失效

    2024-12-29 09:14

    我刚刚试了一下,发现如果只有引用内容的话,是识别不了的,但是如果这个标题块里除了引用的内容,还有其他的正常的文本(无论前后),那反链面板里就能识别 @88250

    Screenshot20241229091425orgb3logsiyuanMainActivity.jpg

  • 安卓端 3.1.17 版本在标题使用引用时反链面板显示失效

    2024-12-29 01:17

    好吧,得等 D 大明天看看了

  • 安卓端 3.1.17 版本在标题使用引用时反链面板显示失效

    2024-12-29 01:09

    为啥你在 github 上显示的手机端反链面板可以看到下面的内容呀, 我开了反链包含子块也没有显示

  • 如何实现代码块内部的备注?

    2024-07-24 12:02

    确实是,注释跟代码混在一块会显得比较乱,

    不过这个也是现在编程的现状,如果想要学代码,以后想自己看其他人的工程的话,还是适应一下这种状态比较好