以下是一个在小程序中查询数据库的发表于美国的图书记录的例子:
// 1. 获取数据库引用 const db = wx.cloud.database() // 2. 构造查询语句 // collection 方法获取一个集合的引用 // where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表 // get 方法会触发网络请求,往数据库取数据 db.collection('books').where({ publishInfo: { country: 'United States' } }).get({ success: function(res) { // 输出 [{ "title": "The Catcher in the Rye", ... }] console.log(res) } })
函数一:CONCAT 使用场景:查询时把多个字段拼接成一个字符串	例子:select concat('id:',id,',name:',name) from student	解析:需要连接的字段用逗号分隔开来,自定义的拼接符号使用单引号包裹,也使用逗号...
函数一:CONCAT
使用场景:查询时把多个字段拼接成一个字符串例 子:select concat('id:',id,',name:',name) from student解 析:需要连接的字段用逗号分隔开来,自定义的拼接符号使用单引号包裹,也使用逗号分隔注 意:这个函数需要注意的是,如果有一列值为空,那么这一列拼接的结果都会为null,为了避免这样的状况发生,需要在可能为空的列上添加函数二
函数二:IFNULL
使用场景:查询时判断字段是否为空,如果为空则取第二个默认参数,不为空则取表中数据例 子:selectIFNULL(name,'is null') from student解 析:两个参数,第一个参数为字段名,第二个参数为默认值注 意:是对查询结果进行的判断,如果不存在的数据是不会取默认值,如下列情况(student表中一共就十条数据):selectIFNULL(name,'is null') from student where id = 100 ,这种结果就是null,而不是默认值 'is null'
函数三:COALESCE
使用场景:查询时判断字段是否为空,如果字段为空则取从第二个参数开始不为空的值,字段不为空则取表中数据例 子:selectCOALESCE(name,null,null,'is default') from student解 析:多个参数,第一个参数为字段名,从第二个参数开始都为可选值,如果字段为空,取值是从第二个参数开始不为空的值,如果都为空,则返回null注 意:暂无
函数四:REPLACE
使用场景:查询时替换字段中的指定字符例 子:selectREPLACE(name,'小明','小红') from student解 析:三个参数,第一个参数为字段名,第二个参数为此字段中需要替换的字符串,第三个参数为替换后的字符串注 意:暂无
函数五:FIND_IN_SET
使用场景:指定字符在字段中是否存在,这类字段都有一个特点,就是会有多个值,以','(英文逗号)分隔例 子:select id , name , score from student where find_in_set ('100' , score )解 析:两个参数,第一个参数为查询的条件,第二个参数为需要匹配的字段;假设学生表有个字段 score 用来存三门课的分数,是以 ','(英文逗号分隔),这条语句就是查询学生表中有至少一门分数是100分的学生 id 和name注 意:两个参数的先后顺序,经常容易写颠倒,最坑的是写颠倒了程序不报错...
函数六:CASE
使用场景:一张表中有 state 字段,取值为 0(禁用) 或1(启用),但是想在查询结果中分别显示对应的中文汉字例 子:select id , name , (case state when 0 then '禁用' when 1 then '启用' else '其他' end ) state from student解 析:查询学生表的id,名称和状态,当状态为0时显示 禁用 ,为1时显示 启用 ,不为0和1时显示 其他注 意:最后有一个end作为结束,不要忘了
函数七:GROUP_CONCAT
使用场景:假如有一张产品表,一张产品标签表以及一张产品标签关联表,想查出每个产品对应的多个产品标签 id例 子:SELECT pi.id,GROUP_CONCAT( ptr.product_tag_id ) as tags FROM product_info pi
LEFT JOIN product_tag_rel ptr ON pi.id = ptr.product_info_id GROUP BY pi.id
解 析:查询每一个产品以及每一个产品对应的产品标签 id(产品标签 id 会以逗号分隔)注 意:分组
函数八:DATE_FORMAT
使用场景:格式化时间例 子:SELECT id , DATE_FORMAT( create_datetime, '%Y-%m-%d %H:%i' ) FROMstudent解 析:查询学生表的 id 和格式化后的创建时间(年-月-日时:分)注 意:format 字母的大小写
函数九:TIMESTAMPDIFF
使用场景:求出时间差例 子:SELECTTIMESTAMPDIFF(SECOND , create_time , update_time) FROMstudent解 析:查询学生表的创建时间和修改时间的秒差
(SECOND:秒 / MINUTE:分 / HOUR:时 / DAY:天 / MONTH:月 / YEAR:年)
注 意:create_time