Filemaker 17 API“AND”查询

问题描述 投票:1回答:3

我很难用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”查找。在我的第二个例子的情况下,查询应该不返回任何记录,因为我的表中的每个记录都有一个uniqueID

更新后的答案:

在我的分析中,似乎我的问题中的第二个查询只是一个AND,对于任何包含字面意义的唯一ID,我猜Filemaker以某种方式解释为对任何记录都是真的。

对于来自MySQL的人来说,这是非常令人困惑的行为。在查看Filemaker API文档和示例时,文档虽然将此作为FileMaker的全局属性进行演示,但并不明显。

curl filemaker
3个回答
1
投票

你正在做一个“AND”发现。如果某个字段在查找中为空,则不会搜索该字段。在您的计数器示例中,您只使用anotherField搜索字段:1。如果要搜索空字段,请使用“=”,因为它只会找到空字。

没有足够的评论,但你的回答是:

对于Filemaker在uniqueID上查找,您需要使用“==”。 “=”会给你一个单词匹配,而“==”会给你一个精确的值匹配。见https://fmhelp.filemaker.com/help/12/fmp/en/html/find_sort.5.6.html


1
投票

同意:Data 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"}
]}

0
投票

我知道我刚刚问过这个问题,但是它有记录,因为Filemaker API文档非常粗制滥造。

"{"query":[{
    "uniqueID":"=fooBar",
    "anotherField":1
}],"limit":"1"}"

这将返回我寻求的记录。

加上= ==可以防止假阳性,尽管有不同的方式。

- 更新以反映Rushfire答案中的细粒度细节。

© www.soinside.com 2019 - 2024. All rights reserved.