Filemaker 17 API "И" запрос - PullRequest
       33

Filemaker 17 API "И" запрос

1 голос
/ 06 марта 2019

Мне трудно сформулировать запрос "И" с помощью API FileMaker 17.

Ссылка: 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"}"

Так что это поиск "ИЛИ".

Как я могу структурировать этот запрос так, чтобы он выполнял поиск "И". В случае моего второго примера запрос не должен возвращать записей, так как каждая запись в моей таблице имеет uniqueID?

Обновленный пост-ответ:

В моем анализе кажется, что вторым запросом в моем вопросе является просто И для любого уникального идентификатора, который содержит буквально ничего , который, как мне кажется, Filemaker каким-то образом интерпретирует как истинный для любой записи.

Для кого-то из MySQL это очень запутанное поведение. И документация, хотя и демонстрирует это как глобальное свойство FileMaker, не очевидна при просмотре документации и примеров Filemaker API.

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Вы делаете поиск "И".Если в поиске поле пустое, оно не будет найдено.В вашем примере счетчика вы искали только поля с anotherField: 1.Если вы хотите выполнить поиск в пустом поле, используйте «=», поскольку оно будет искать только пустые слова.

Не достаточно Rep, чтобы комментировать, но для вашего предыдущего ответа:

Для Filemaker находит по уникальному IDВы хотели бы использовать "=="."=" даст вам совпадение слов, а "==" даст вам точное совпадение значений.Смотри https://fmhelp.filemaker.com/help/12/fmp/en/html/find_sort.5.6.html

1 голос
/ 15 марта 2019

Согласовано: документация 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 голосов
/ 06 марта 2019

Я знаю, что буквально спрашивал об этом минуту назад, но на нем стоит запись, поскольку документация по Filemaker API довольно скудна.

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

Возвращает искомую запись.

Добавление либо = == предотвращает ложное срабатывание, хотя и по-разному.

- Обновлено, чтобы отразить мелкие детали в ответе Rushfire.

...