如何編寫查詢

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

如何編寫查詢

可在查詢中用於優化條件的運算符號/函數/選項。
運算符號/函數/選項可以組合使用。

有關編寫查詢的範例,請參閱以下內容。
示例查詢

運算符號

使用「欄位代碼 運算符號 值」。

運算符號 說明
= 單行文字方塊_0 = "測試" 在運算子之前指定的欄位代碼的值與運算符之後指定的值匹配
!= 單行文字方塊_0 != "測試" 在運算子之前指定的域代碼的值與在運算符之後指定的值不同
> 數值_0 > 10 運算子之前指定的域代碼值大於運算子后指定的值
< 數值_0 < 10 在運算子之前指定的域代碼的值小於在運算符之後指定的值
>= 數值_0 >= 10 在運算子之前指定的域代碼的值大於或等於在運算符之後指定的值
<= 數值_0 <= 10 在運算子之前指定的欄位代碼的值小於或等於在運算符之後指定的值
in 下拉式選單_0 in ("A", "B") 在運算子之前指定的域代碼的值與運算符後面括號中列出的字串之一匹配
not in 下拉式選單_0 not in ("A", "B") 在運算子之前指定的域代碼的值與運算符後面括號中列出的字串不匹配
like 單行文字方塊_0 like "測試" 在運算子之前指定的域代碼的值包含運算子之後指定的值
如果要確定的欄位類型是附件,則檔名和文件內容將包含在判斷中。
對於不能與 like 運算子一起使用的符號,請參閱以下頁面:
關於搜索詞的說明 (External link)
not like 單行文字方塊_0 not like "測試" 在運算子之前指定的域代碼的值不包括在運算符之後指定的值
對於不能與 like 運算子一起使用的符號,請參閱以下頁面: 關於搜索詞的說明 (External link)
or 數值_0 < 10 or 數值_0 > 20 使用上述運算子的兩個條件表達式的邏輯 OR
and 數值_0 >= 10 and 數值_0 <= 20 使用上述運算子的兩個條件表達式的邏輯AND
補充
  • 如果要在表中包括欄位,在查詢中包括相關記錄中的欄位,請使用 innot in 運算元,而不是 =!= 運算元。
  • 如果要在查詢中搜索字串,則為單詞搜索。
    詳情請參閱以下頁面。
    關於搜索詞的說明 (External link)

函數

函數名稱 說明
LOGINUSER() 建立人 in (LOGINUSER()) 執行 API 的使用者
PRIMARY_ORGANIZATION() 組織 in (PRIMARY_ORGANIZATION()) 運行 API 的使用者的首選組織
如果未為運行 API 的使用者設置首選組織,則忽略該組織 in (PRIMARY_ORGANIZATION()) 條件,並且
將獲取滿足其餘精簡條件的所有記錄。
NOW() 建立時間 = NOW() 執行 API 的日期和時間
TODAY() 建立時間 = TODAY() 執行 API 的日期
YESTERDAY() 建立時間 = YESTERDAY() 執行 API 的前一天
TOMORROW() 日期與時間 = TOMORROW() 運行 API 的第二天
FROM_TODAY(数字, 期間單位) 建立時間 < FROM_TODAY(5, DAYS) 自 API 執行之日起的持續時間
可以為持續時間單位指定以下字串:
  • DAYS:以日為單位
  • WEEKS:以週為單位
  • MONTHS:以月為單位
  • YEARS:以年為單位
THIS_WEEK(曜日) 建立時間 = THIS_WEEK() 執行 API 的那一周
您可以透過參數指定以下值來指定星期幾:
  • SUNDAY:星期日
  • MONDAY:星期一
  • TUESDAY:星期二
  • WEDNESDAY:星期三
  • THURSDAY:星期四
  • FRIDAY:星期五
  • SATURDAY:星期六
如果未指定參數,則包括一周中的所有日期。
LAST_WEEK(曜日) 建立時間 = LAST_WEEK() 執行 API 的那一周的前一周
您可以通過指定與參數中相同的值來指定星期幾 THIS_WEEK()
如果未指定參數,則包括前一周的所有日期。
NEXT_WEEK(曜日) 日期與時間 = NEXT_WEEK() 執行 API 的一周後的一周
您可以通過指定與參數中相同的值來指定星期幾 THIS_WEEK()
如果未指定參數,則包括下周的所有日期。
THIS_MONTH(數位或格式字元) 建立時間 = THIS_MONTH() 執行 API 的月份
您可以透過參數指定以下值來指定日期:
  • LAST:月底
  • 從 1 到 31 的數值:日期
如果未指定參數,則包括該月的所有日期。
如果指定的日期不存在,則將在執行 API 的月份的下一個月的第一天計算。
LAST_MONTH(數位或格式字元) 建立時間 = LAST_MONTH() 執行 API 的月份前一個月
您可以透過參數指定以下值來指定日期:
  • LAST:上個月末
  • 從 1 到 31 的數值:上個月的日期
如果未指定參數,則包括該月的所有日期。
如果指定的日期不存在,則將在執行 API 的月份的下一個月的第一天計算。
NEXT_MONTH(數位或格式字元) 建立時間 = NEXT_MONTH() 執行 API 的月份的次月
您可以透過參數指定以下值來指定日期:
  • LAST:下個月月底
  • 從 1 到 31 的數值:下個月的日期
如果未指定參數,則包括該月的所有日期。
如果指定的日期不存在,則將在執行 API 的月份的下一個月的第一天計算。
THIS_YEAR() 建立時間 = THIS_YEAR() 執行 API 的年份
LAST_YEAR() 建立時間 = LAST_YEAR() 執行 API 的年份的前一年
NEXT_YEAR() 日期與時間 = NEXT_YEAR() 執行 API 的第二年

選項

選項 說明
order by order by 更新時間asc 獲取記錄的順序
此選項後跟指定域代碼的值。
如果在域代碼后指定asc,則按升序排序,如果指定desc,則按降序排序。
如果要按多個專案排序,請指定以逗號分隔的「欄位代碼 排序順序」。
例:order by 欄位代碼1 desc, 欄位代碼2 asc
如果省略,則按記錄ID降序排序。
可以在order by中指定的欄位存在限制。
詳情請參閱以下頁面。
可以通過排序來選擇的欄位 (External link)
limit limit 20 要獲取的記錄數
例如指定limit 20,返回前 20 條記錄。
您可以指定一個介於 0 和 500 之間的數值。
如果省略,則設置為100。
offset offset 30 要跳過獲取的記錄數
例如指定offset 30,不從記錄的開頭獲取第 30 條記錄,而是從第 31 條記錄中獲取它。
您可以指定一個介於 0 和 10,000 之間的數值。
如果省略,則設置為0。

每個欄位的可用運算元和函數清單、系統識別碼

欄位或系統識別碼 可用功能
記錄號碼 = != > < >= <= in
not in
$id = != > < >= <= in not in
建立人 in not in LOGINUSER()
建立時間 = != > < >= <= NOW() TODAY() YESTERDAY() TOMORROW() FROM_TODAY() THIS_WEEK() LAST_WEEK() NEXT_WEEK() THIS_MONTH() LAST_MONTH() NEXT_MONTH() THIS_YEAR() LAST_YEAR() NEXT_YEAR()
更新人 in not in LOGINUSER()
更新時間 = != > < >= <= NOW() TODAY() YESTERDAY() TOMORROW() FROM_TODAY() THIS_WEEK() LAST_WEEK() NEXT_WEEK() THIS_MONTH() LAST_MONTH() NEXT_MONTH() THIS_YEAR() LAST_YEAR() NEXT_YEAR()
單行文字方塊 = != in not in like not like
連結 = != in not in like not like
數值 = != > < >= <= in not in
計算 = != > < >= <= in not in
多行文字方塊 like not like
文字編輯方塊 like not like
核取方塊 in not in
選項按鈕 in not in
下拉式選單 in not in
複選 in not in
附件 like not like
日期 = != > < >= <= TODAY() YESTERDAY() TOMORROW() FROM_TODAY() THIS_WEEK() LAST_WEEK() NEXT_WEEK() THIS_MONTH() LAST_MONTH() NEXT_MONTH() THIS_YEAR() LAST_YEAR() NEXT_YEAR()
時間 = != > < >= <=
日期與時間 = != > < >= <= NOW() TODAY() YESTERDAY() TOMORROW() FROM_TODAY() THIS_WEEK() LAST_WEEK() NEXT_WEEK() THIS_MONTH() LAST_MONTH() NEXT_MONTH() THIS_YEAR() LAST_YEAR() NEXT_YEAR()
選擇使用者 in not in LOGINUSER()
選擇組織 in not in PRIMARY_ORGANIZATION()
選擇群組 in not in
狀態 = != in not in
Lookup 與Lookup的欄位類型相同 與Lookup的欄位類型相同
相關記錄清單 與所引用的應用的欄位類型相同 與所引用的應用的欄位類型相同
群組
類別

逸出

如果以下欄位的值包含"(雙引號)或反斜杠\(反斜杠),則需要逸出。

  • 單行文字方塊
  • 多行文字方塊
  • 文字編輯方塊
  • 核取方塊
  • 選項按鈕
  • 下拉式選單
  • 複選
  • 狀態
逸出示例

這是逸出包含複選框(域代碼:Checkbox)的 "\ 值的示例。

1
2
3
4
5
-- 逸出「sample"1"」的示例
Checkbox in ("sample\"1\"")

-- 逸出「sample\2\」的示例
Checkbox in ("sample\\2\\")

kintone.api()如果要在請求正文中指定 JSON 字串,請像這樣對其進行轉義:

1
2
3
4
5
// 逸出「sample"1"」的示例
const body = {
  app: kintone.app.getId(),
  query: 'Checkbox in ("sample\\"1\\"")'
};
1
2
3
4
5
// 逸出「sample\2\」的示例
const body = {
  app: kintone.app.getId(),
  query: 'Checkbox in ("sample\\\\2\\\\")'
};

有關詳細的kintone.api(),請參閱以下頁面。
發送kintone REST API請求API

示例查詢

指定單行文字方塊的値

如果要將精確字串指定為完全匹配,使用= 運算符號。

1
2
-- 欄位代碼為「Customer」的字段值為「Cybozu, Inc.」
Customer = "Cybozu, Inc."

如果要將字串指定為部分匹配項,使用like 運算符號。

1
2
-- 字段代碼為「Customer」的字段的值包含「Inc.」
Customer like "Inc."
指定下拉式選單

如果要為下拉欄位指定值,使用innot in 運算符號。
使用innot in 運算符號時,必須將值 () 括在中。

1
2
-- 欄位代碼為「Status」的字段的值,其中包含「Supported」或「Not Supported」
Status in  ("Supported","Not Supported")
1
2
-- 字段代碼為「Status」的字段值不包含「Completed」
Status not in ("Completed")

以下欄位可用於使用 innot in 運算符號選取記錄,就像下拉式選單一樣。

  • 核取方塊
  • 選項按鈕
  • 複選
指定日期欄位的值

對於日期欄位,您可以通過指定範圍進行篩選。

1
2
-- 字段代碼為「LimitDay」的字段值為「2022-09-29」到「2022-10-29」
LimitDay >= "2022-09-29" and LimitDay <= "2022-10-29"

指定多個條件時, and 可以使用運算符連接表達式。

指定記錄編號欄位的值

您可以在 $id 中指定記錄編號欄位,而不是使用精簡程式和 order by 指定記錄編號字段代碼。
指定相關記錄清單的欄位代碼.$id,指定相關紀錄清單中的記錄編號欄位。

指定相關記錄中欄位的值

如果要將相關記錄中的欄位作為條件包括在內,請按以下格式指定該欄位:

1
相關記錄的欄位代碼.相關記錄目標的欄位代碼

指定相關記錄中包含的欄位值的範例。

1
2
3
4
5
-- 當相關記錄的欄位代碼為「Company」時
-- 「Company」中的「Name 」字段為「Cybozu」
-- Company」包含包含「Tokyo」的位址欄位

Company.Name in ("Cybozu") and Company.Address like "Tokyo"
獲取表中欄位的值

如果要獲取表中的欄位,則不能使用=!=運算符號。
要使用innot in運算符號。

例如,日期和時間欄位可以使用 =!=運算符號,但表中的日期和時間欄位可以使用 innot in

1
2
--欄位代碼為「ResponseDate」的字段值為「2022-09-29 14:00」
ResponseDate in ("2022-09-29T05:00:00Z")
指定多個字段和條件

您可以使用andor 運算子指定多個條件。

1
2
3
-- 字段代碼為「LimitDay」的字段的值早於「今日」
-- 字段代碼為「Status」的字段值不包含「Completed」
LimitDay < TODAY() and Status not in "Completed"
order by 使用指定條件

使用order bylimitoffset,選項允許您指定要獲取的記錄的順序和數量。

1
2
--按"遞增"獲取字段代碼為「LimitDay」的字段值
LimitDay < TODAY() and Status not in ("Completed") order by LimitDay asc
對表達式進行分組

如果要為多個字段指定多個條件,請將表達式分組到括弧 () 中。
分組允許您指定更精細的條件。

1
2
3
4
-- 字段代碼為「QType」的字段的值為「Other」
-- 或
-- 字段代碼為「LimitDay」的字段值為「2022-09-29」到「2022-10-29」
(QType in ("Other")) or (LimitDay >= "2022-09-29" and LimitDay <= "2022-10-29")