作为非程序员,思源的动态查询让我觉得非常神奇,于是就关注起了 sql 语言。
在我看来,SQL 就是在你的文件数据库中满足你提的所有要求,来搜索过滤出你想要的信息,并呈现出来。
所以,SQL 语句的本质就是各种条件的组合。
而思源的语句,我把它暴力拆分为开头语,中间条件和结尾语。结尾语可有可无,但开头语和中间条件必须有。
1、开头语
在 SQL 语句的开头位置,且必不可少。
开头语就是:
SELECT * FROM blocks WHERE
翻译:我要搜索各种类型的块
2、中间提各种 条件:
在 SQL 语句中至少要提 1 个条件,数目不限。
它们可以自由组合,且不分先后顺序。
它们之间用 AND
或 OR
来连接。
AND
翻译:和。几个条件同时满足。
OR
翻译:或者。满足其中一个。
中间条件有且不仅有以下这些:
content LIKE '%张三%'
翻译:该块有【张三】这几个字
content LIKE '%#张三%#'
翻译:该块标签是【张三】
name LIKE '%张三%'
翻译:该块的命名有【张三】这几个字
alias LIKE '%张三%'
翻译:该块的别名有【张三】这几个字
memo LIKE '%张三%'
翻译:该块的备注名有【张三】这几个字
name='张三'
翻译:该块的命名是【张三】(也就是它的命名有且仅有张三这几个字)
alias='张三'
翻译:该块的别名是【张三】(也就是它的别名有且仅有张三这几个字)
memo='张三'
翻译:该块的备注名是【张三】(也就是它的备注名有且仅有张三这几个字)
type='i'
翻译:该块是列表块
type='c'
翻译:该块是代码块
type='m'
翻译:该块是数学公式块
type='t'
翻译:该块是表格块
type='b'
翻译:该块是引用块
type='s'
翻译:该块是超级块
type='p'
翻译:该块是段落块
type='o'
翻译:该块是有序列表块
type='u'
翻译:该块是无序列表块
created >'20210623'
翻译:该块是【2021 年 06 月 23 日】后创建的
3、结尾语
在 SQL 语句中可以没有,有的话最多只能有 1 个。
结尾条件有且不仅有以下这些:
order by created
翻译:按创建时间升序排序
order by created DESC
翻译:按创建时间降序排序
order by created limit 5
翻译:按创建时间升序排序的前【5】个
order by created DESC limit 5
翻译:按创建时间降序排序的前【5】个
order by updated
翻译:按更新时间升序排序
order by updated DESC
翻译:按更新时间降序排序
order by updated limit 5
翻译:按更新时间升序排序的前【5】个
order by updated DESC limit 5
翻译:按更新时间降序排序的前【5】个
order by random() limit 5
翻译:随机挑【5】个
举例
1、查询【标题块】中包含「使用方法」 而且能显示在这个标题下的内容(包含该标题下的子标题和所有文字内容):
{{SELECT * FROM blocks WHERE content LIKE ('%使用方法%') AND type='h'}}
2、查询【段落块】中包含 「内容块」:** **
{{ SELECT * FROM blocks WHERE content LIKE'%内容块%' AND type = 'p'}}
3、查询【段落块】中同时包含 「内容块」和 「引用」:
{{ SELECT * FROM blocks WHERE content LIKE '%内容块%' AND content LIKE '%引用%' AND type = 'p') }}
4、查询【标题块】中同时包含 「内容块」 和 「嵌入」,并按【更新时间】【降序】结果取前 「2 条」
{{ SELECT * FROM blocks WHEREcontent LIKE '%内容块%' AND content LIKE '%嵌入%' AND type = 'h' ORDER BY updated DESC LIMIT 2}}
5、查询【备注】为「王大」的各种类型的块:
{{ SELECT * FROM blocks WHERE memo='王大'}}
6、查询【备注】为「王大」的【标题块】:
{{ SELECT * FROM blocks WHERE memo='王大' AND type='h'}}
7、查询【引用块】中包含「使用方法」:
{{SELECT * FROM blocks WHERE content LIKE ('%使用方法%') AND type='b'}}
8、查询 20210623 后创建的块,并按创建时间倒序排列
{{SELECT * FROM blocks WHERE type='p' and created >'20210623' order by created DESC}}
如有错误,请指正。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于