因为思源没有实现流式日记,所以是使用 sql 将每日笔记汇总到一块。当前遇到一个困扰,在每日笔记的模板当中我会去汇总#TODO 标签的。如下:
但是这样的话,因为每条每日笔记中都包含查询#TODO 的嵌入块, 汇总出来结果很多重复,要如何排除掉呢?
汇总每日笔记的 sql 如下:就算在每个 WHERE 后面加上 type != 'query_embed' 也并不起作用。应该怎样实现呢?
SELECT * FROM blocks as t1
WHERE hpath like '/笔耕不辍%-%'
AND type = 'd'
AND EXISTS (
SELECT * FROM blocks as b1
WHERE hpath like '/笔耕不辍%-%'
AND parent_id = t1.root_id
AND markdown <> ''
AND type != 'query_embed'
AND NOT EXISTS (
SELECT * FROM blocks as b2
WHERE b2.parent_id = b1.id
AND (b2.type = 'p' OR b2.type = 'h')
)
)
AND strftime('%Y-%m-%d', content) IS NOT NULL
ORDER BY created DESC;
ps:顺便说一句,AND strftime('%Y-%m-%d', content) IS NOT NULL 是为了排除在每日笔记中创建的引用块作为嵌入块显示,否则引用块会一并显示出来,我看了下 siyun.db,发现能用这个作为判断,不知道实现这个需求是否有更好的办法。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于