検索条件(クエリ)の書き方

Modified on: Thu, Jul 21, 2022 at 4:43 PM


       

条件を組み立ててレコードを取得するクエリで条件を指定してレコードを取得するを使うと、kintone APIを使って指定した条件でレコードを取得できます。


この検索条件(クエリ)の仕様自体はkintone API のクエリの書き方の基本およびレコードの取得(GET) - レコードの一括取得(クエリで条件を指定)などの、サイボウズ様のサイトをご確認ください。


ここでは、検索条件にフィールドの値をどのように書いたらよいか、ということをご説明いたします。

説明にはkintoneアプリストア「おすすめのアプリ」にある「旅費精算申請」アプリを使用していますので、お手元でも追加して試してみてください。

基本的な検索条件(クエリ)の書き方

kintoneの仕様では、クエリは以下のように記述します。それぞれの要素は必ず半角スペースで区切ります。


「フィールドコード」 「演算子」 「値」


  • フィールドコード: kintoneのフィールドコード

  • 演算子: フィールドによって利用可能な演算子が異なります。 詳しくはサイボウズ様のサイトにてご確認ください

  • 値: カスタマイン独自の記述方法により、ここにフィールドの値を記述可能です。この値の指定方法には様々な方法があります。詳しくは「検索条件(クエリ)で値を指定する様々な方法」をご確認ください。


フィールドコードの値を記述するには、追加画面・編集画面・詳細画面のいずれかである必要があることに注意してください。一覧画面では、直接フィールドの値を取り出すことはできません。


この基本を意識した上で、以下実際の例をご確認ください。


数値で検索したいとき

たとえば、日当フィールドの値を使って、同じ旅費精算申請アプリで入力された日当以上のレコードを取得するには、以下のような検索条件を入力します。


基本の「フィールドコード」 「演算子」 「値」の書き方になっていることをご確認ください。


日当 >= ${日当}


実際に発行されるクエリは以下のようになります。


query: 日当 >= 100 limit 500 offset 0


実際に発行されるクエリはコンソールログにて確認できます。


文字列で検索したいとき

たとえば、行き先フィールドの値を使って、同じ旅費精算申請アプリで入力された同じ行き先のレコードを取得するには、以下のような検索条件を入力します。

値が文字列ですので「"」で囲う必要があります。


行き先 = "${行き先}”


実際に発行されるクエリは以下のようになります。


query: 行き先 = "大阪本社” limit 500 offset 0


日付の範囲で検索したいとき

少し複雑な例を挙げます。日付の範囲、具体的には期間(出発)と期間(帰着)の範囲で検索するには、以下のような検索条件になります。

値が日付ですので同じく「"」で囲う必要があります。


出発 >= "${出発}" and 帰着 <= "${帰着}"


実際に発行されるクエリは以下のようになります。


query: 出発 >= "2022-05-09” and 帰着 <= "2022-05-13” limit 500 offset 0


テーブル化されたフィールドに対して検索したいとき

また別な例として、テーブル内のあるフィールドに対して検索したい場合のを挙げます。サイボウズ様のサイトより引用しますと、仕様としては以下のとおりです。


テーブル化されたフィールド、関連レコードのフィールドをクエリに含める場合の注意事項

テーブル化されたフィールドおよび、関連レコードのフィールドをクエリに含める場合、「=」、「!=」演算子の代わりに「in」、「not in」演算子を使う必要があります。



たとえば旅費テーブルの「手段」フィールドの値で検索するには、以下のような検索条件になります。


ここでは「選択肢から選択するダイアログを表示する」を使って手段を選択するダイアログを表示し、そのアクションの結果を検索条件として利用しています。


手段 in ("${$11}”)


実際に発行されるクエリは以下のようになります。


query: 手段 in ("タクシー”) limit 500 offset 0


このようにアクションの結果も、フィールドの値と同じように利用できます。


さらに複雑な条件で検索したいとき

ここまでの例は絞り込むことが中心でしたが、OR条件(いずれかと等しい場合)で検索したいこともあるかと思います。


そのような例はこちらの条件を組み立ててレコードを取得するレコードをいずれかの条件で取得するをご確認ください。