nodejs параметризованный запрос bigquery внутри выражения IN () - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь выполнить параметризованный запрос, используя модуль npm @google-cloud/bigquery. Примерно так:

SELECT * FROM myTable WHERE id IN (@ids);

Понятия не имею, как bigQuery ожидает отформатированные идентификаторы параметров.

Мой options.params выглядит примерно так:

{ ids: '"1234", "4567"'}

Но я не получаю никакого результата назад. Я знаю, что есть результаты, я могу видеть их в большом запросе, и если я удаляю параметр и просто вставляю строку, она работает просто отлично.

Это кажется довольно простым, но я не могу понять, почему это не так работа, кто-нибудь, кто готов мне помочь?

Заранее спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Конечно, я нашел решение, как только отправил вопрос ... Спасибо этой теме ! Нужно сделать некоторые гимнасты c ...

Так при условии, что параметр представляет собой строку типа:

'1234,5678'

Нам нужно сделать:

WHERE id IN UNNEST(REGEXP_EXTRACT_ALL(@ids,"[0-9a-zA-Z]+"))

REGEXP_EXTRACT_ALL - возвращает массив

UNNEST - выравнивает массив для предложения IN, как указано в ссылке выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...