在 HTTP 客户端,复制一份这个请求,名字改成“选择数据”。
要查询数据表里的数据,可以使用 SELECT 声明。先试一下 SELECT * FROM post; 执行一下这段查询,得到的结果就是一组 post 数据。
ID
想得到指定 id 的数据记录,可以直接在 FROM 的后面提供一个数据记录的 id,比如 post:3 ,这样得到的就是 post:3 这个 id 的数据记录。
指定字段
这个 SELECT 后面的 * 号表示所有字段,我们可以指定自己需要的字段,比如 id, title ,这样得到的这组 post 数据里面,只会包含 id 还有 title 这两个字段 。
自定义结构
这个结果的结构我们也可以自己定制一下,在 SELECT 后面加上一个 id,逗号分隔一下,再提供一个对象,然后在大括号外面用 AS 给这个对象起个名字叫 attributes。
在这个对象里面添加一个 title 属性,值是 title 字段的值,再添加一个 content 属性,值是 contnet 字段的值。
这回返回的结果里面,每个内容项目里会有一个 id 属性,然后有一个 attributes 属性,它的值是一个对象,里面有 title 还有 content。
LIMIT
用 LIMIT 可以限制返回的结果的数量,比如 LIMIT 3,这样多最就只能返回三条内容。
START
用 start 可以设置起点位置,START 3 ,你会发现,第一条结果的 id 是 post:4。使用 LIMIT 跟这个 START 可以实现内容分页的功能。
ORDER BY
对查询结果进行排序可以使用 ORDER BY ,排序的依据是一个字段的名字,比如按 id 这个字段的值来排序,然后再指定一种排序方式,可以是 ASC 表示升序 ,或者 DESC 表示降序。设置成 DESC。
这次 post:9 这条内容会排在最前面。
WHERE
在查询的时候用 WHERE 可以设置查询条件,比如 id = 'post:3',得到的就是 id 值是 post:3 的这个数据记录。
再试一下,WHERE status = 'draft' ,这次得到的结果就是 status 字段的值等于 draft 的内容项目。
操作符
如果想得到内容字段里包含特定字符的数据记录,这个条件可以写成 content 后面是一个波浪号,表示模糊匹配,值是 '花',这个 ~ 号是在查询里可以使用的一个操作符,还有很多可用的操作符,具体用法可以参加 surrealdb 的官方文档。
执行一下,这次得到的结果里面,content 字段的值里面都会包含 '花' 这个字儿。