Filemaker 17 API "AND" 查询
Filemaker 17 API "AND" query
我在使用 FileMaker 17 API.
制定 "AND" 查询时遇到困难
参考:
https://fmhelp.filemaker.com/docs/17/en/dataapi/index.html#perform-a-find-request
这正在传递到 CURLOPT_POSTFIELDS。
"{"query":[{
"uniqueID":"fooBar",
"anotherField":1
}],"limit":"1"}"
我想要发生的是我检索了 1 条记录,其中 uniqueID
是 "fooBar" 并且 anotherField
是 1.
但是,如果我通过了,我会得到相同的记录:
"{"query":[{
"uniqueID":"",
"anotherField":1
}],"limit":"1"}"
所以这是在进行 "OR" 查找。
我如何构造此请求以使其执行 "AND" 查找。在我的第二个例子中,查询应该 return 没有记录,因为我的 table 中的每条记录都有一个 uniqueID
?
已更新 post-答案:
在我的分析中,我的问题中的第二个查询似乎只是对任何包含字面上 nothing 的 uniqueID 的 AND,我猜 Filemaker 以某种方式将其解释为 true任何记录。
对于来自 MySQL 的人来说,这是非常令人困惑的行为。文档虽然将其展示为 FileMaker 的全局 属性,但在查看 Filemaker API 文档和示例时并不明显。
我知道我刚才真的问过这个问题,但它值得记录,因为 Filemaker API 文档非常粗糙。
"{"query":[{
"uniqueID":"=fooBar",
"anotherField":1
}],"limit":"1"}"
那returns我求的记录。
添加 =
==
可防止误报,尽管方式不同。
-- 已更新以反映 Rushfire 回答中的细粒度细节。
您正在执行 "AND" 查找。如果查找中的某个字段为空,则不会对其进行搜索。在您的反例中,您仅搜索具有 anotherField:1 的字段。如果您想在空字段上搜索,请使用“=”,因为它只会找到空词。
没有足够的代表发表评论,但对于您之前的回答:
对于 Filemaker 在 uniqueID 上查找,您可能希望使用“==”。 “=”将为您提供单词匹配,而“==”将为您提供精确值匹配。参见 https://fmhelp.filemaker.com/help/12/fmp/en/html/find_sort.5.6.html
同意回复:数据 API 文档。澄清一下,对于以后可能会访问此主题的人:
// this AND that, array with single predicate object
{"query": [{
"this": "foo",
"that": "bar"
}]}
// this OR that, array with multiple predicate objects
{"query": [
{"this": "foo"},
{"that": "bar"}
]}
我在使用 FileMaker 17 API.
制定 "AND" 查询时遇到困难参考: https://fmhelp.filemaker.com/docs/17/en/dataapi/index.html#perform-a-find-request
这正在传递到 CURLOPT_POSTFIELDS。
"{"query":[{
"uniqueID":"fooBar",
"anotherField":1
}],"limit":"1"}"
我想要发生的是我检索了 1 条记录,其中 uniqueID
是 "fooBar" 并且 anotherField
是 1.
但是,如果我通过了,我会得到相同的记录:
"{"query":[{
"uniqueID":"",
"anotherField":1
}],"limit":"1"}"
所以这是在进行 "OR" 查找。
我如何构造此请求以使其执行 "AND" 查找。在我的第二个例子中,查询应该 return 没有记录,因为我的 table 中的每条记录都有一个 uniqueID
?
已更新 post-答案:
在我的分析中,我的问题中的第二个查询似乎只是对任何包含字面上 nothing 的 uniqueID 的 AND,我猜 Filemaker 以某种方式将其解释为 true任何记录。
对于来自 MySQL 的人来说,这是非常令人困惑的行为。文档虽然将其展示为 FileMaker 的全局 属性,但在查看 Filemaker API 文档和示例时并不明显。
我知道我刚才真的问过这个问题,但它值得记录,因为 Filemaker API 文档非常粗糙。
"{"query":[{
"uniqueID":"=fooBar",
"anotherField":1
}],"limit":"1"}"
那returns我求的记录。
添加 =
==
可防止误报,尽管方式不同。
-- 已更新以反映 Rushfire 回答中的细粒度细节。
您正在执行 "AND" 查找。如果查找中的某个字段为空,则不会对其进行搜索。在您的反例中,您仅搜索具有 anotherField:1 的字段。如果您想在空字段上搜索,请使用“=”,因为它只会找到空词。
没有足够的代表发表评论,但对于您之前的回答:
对于 Filemaker 在 uniqueID 上查找,您可能希望使用“==”。 “=”将为您提供单词匹配,而“==”将为您提供精确值匹配。参见 https://fmhelp.filemaker.com/help/12/fmp/en/html/find_sort.5.6.html
同意回复:数据 API 文档。澄清一下,对于以后可能会访问此主题的人:
// this AND that, array with single predicate object
{"query": [{
"this": "foo",
"that": "bar"
}]}
// this OR that, array with multiple predicate objects
{"query": [
{"this": "foo"},
{"that": "bar"}
]}