Index
前言
本文是介绍编写查询语句的基础知识。
您可以使用查询语句来获取按特定条件筛选的特定记录。
为了更好地理解如何编写查询语句,这里结合应用来说明。
当然,也可以不使用应用只参考如何编写查询语句,希望本文对您的开发有所帮助。
应用的准备
从kintone应用商店添加“来询管理”。(参考:从 kintone 商城中添加应用)
添加此应用后,
1.首先在“更改应用的设置”中更改字段代码,如下所示:
字段名称 | 字段代码 |
---|---|
对应时间 | ResponseDate |
对应内容 | Correspondence |
2.其次任意添加几条记录。其中一条记录如下所示:
字段名称 | 值 |
---|---|
顾客名 | 才望子有限公司 |
期限 | 2018-02-01 |
编写查询语句的方法
关于表达式的格式
查询语句主要由下列的形式构成:
<字段代码> <运算符> <值 或 函数>
若希望了解有关查询语句规范的详细信息,以及每个字段可用的运算符和函数,请查阅这里。
现在,让我们实际获取记录。本文末尾提供了在 JavaScript 中指定查询语句以获取记录的范例。
指定单行文本框的值
让我们通过指定以下条件来实际获取记录。
“顾客名”字段的值是“xx有限公司”(完全一致)
指定完全匹配的字符串时,请使用“=”运算符,如下所示:Customer = "才望子有限公司"
在“顾客名”字段的值中包含“有限公司”(部分一致)
指定部分匹配的字符串时,请使用“like”运算符,如下所示:Customer like "有限公司"
指定下拉菜单的值
让我们通过指定以下条件来实际获取记录。
指定下拉菜单的值时,如下所示请使用“in”和“not in”运算符。
使用“in”和“not in”运算符时,值必须用 () 括起来。
“对应状况”字段的值包含“对应中”和“未对应”
Status in ("对应中","未对应")
“对应状况”字段的值不包含“完了”
Status not in ("完了")
此外,以下字段可以使用“in”、“not in”运算符获取记录,类似于下拉菜单。
复选框
单选框
多选
指定日期字段的值
让我们通过指定以下条件来实际获取记录。
“期限”字段的值是“2018-02-01”
LimitDay = "2018-02-01"
日期字段除了可以指定某一个值也可以指定某一个范围。
让我们通过指定以下条件来实际获取记录。
“期限”字段的值从“2018-02-01”到“2018-03-01”
LimitDay >= "2018-02-01" and LimitDay <= "2018-03-01"
因此,当指定多个条件时,使用“and”运算符来连接表达式。
获取表格内字段的值
“=”、“!=”运算符不能用于获取表格内字段的值。
作为替代,必须使用“in”、“not in”运算符。
让我们用以下条件实际来获取下字段吧。
“对应时间”字段的值是“2018-01-05 14:00”
ResponseDate in ("2018-01-05T05:00:00Z")
就如“指定日期字段的值”中所述,通常日期字段或日期与时间字段使用“=”、“!=”运算符。但是请注意,表格中不能使用。
以上,我们介绍了指定单个字段的查询语句。接下来介绍如何指定多个字段的方法。
指定多个字段和条件
正如“指定日期字段的值”末尾指定的那样,可以使用“and”、“or”运算符指定多个条件。
首先,让我们使用“and”运算符为查询语句中的多个字段指定条件。
使用“and”指定条件
“期限”字段的值在“今天”之前
“对应状况”字段的值不包含“完了”
LimitDay < TODAY() and Status not in ("完了")
指定“期限”字段的条件为“TODAY()”函数。“TODAY()”函数是查询语句中可用的函数之一。
使用该函数,可以轻松的指定条件,比如“今天”、“上周”、“下周”,而无需指定每个日期。
(其他函数请参阅此处。)
使用“order by”指定条件
接下来,让我们在之前的条件上添加另一个条件。
“期限”字段的值在“今天”之前
“对应状况”字段的值不包含“完了”
“期限”字段的值按“升序”获取
LimitDay < TODAY() and Status not in ("完了") order by LimitDay asc
这样就可以使用“order by”选项对记录的输出顺序进行排序。
表达式分组
为多个字段指定多个条件时,请对表达式进行分组。
可以通过括号“()”括起来对表达式进行分组。
通过分组,可以指定更详细的条件。
“来询种类”字段的值是“其他”
或者“期限”字段值的范围从“2018-02-01”到“2018-03-01”
(QType in ("其他")) or (LimitDay >= "2018-02-01" and LimitDay <= "2018-03-01")
查询语句中变量的赋值
最后介绍一下分配变量的方法。
在实际使用 JavaScript 编写查询语句时,有些情况下查询语句中可能包含变量。
例如,将从记录中获取到的值分配给查询语句。
为了使用这些动态值编写查询语句,需要将字符串与变量分开。
让我们假设以下情况:
打开记录时,希望获取到具有相同“期限”值的其他记录。
要实现上述条件,必须按下列顺序进行处理
获取打开的记录的值
将获取到的值分配给查询语句
让我们实际看看代码。
(function() { 'use strict'; kintone.events.on('app.record.detail.show', function(event) { var record = event.record; var limitDay = record.LimitDay.value; var query = 'LimitDay = "' + limitDay + '"'; var body = { 'app': kintone.app.getId(), 'query': query }; kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function(resp) { // success console.log(resp); }, function(error) { // error console.log(error); }); return event; }); })();
重点
以上代码的第7行是重点。
var query = 'LimitDay = "' + limitDay + '"';
记录中“期限”字段的值被分配给作为获取记录的条件的查询语句。
因此,为了将 JavsScript 中的变量分配给查询语句,必须将其组合为字符串。
最后
一旦掌握了编写诀窍,就可以轻松编写查询语句。
这次介绍了查询语句的编写方法,其实还有一种更简单的方法可以组织查询语句。
可以通过组合查询语句来获取各种数据,在实际开发中经常用到。
希望您能利用查询语句来更方便地自定义kintone。