我正在尝试使用npm模块@google-cloud/bigquery
运行参数化查询。像这样的东西:
SELECT * FROM myTable WHERE id IN (@ids);
我不知道bigQuery如何期望格式化的参数ID。
我的options.params
看起来像这样:
{ ids: '"1234", "4567"'}
但是我没有得到任何结果。我知道有结果,我可以在bigquery中看到它们,如果我删除了参数,只是注入了字符串就可以了。
这似乎很简单,但是我想不通为什么它不起作用,任何愿意帮助我的人?
提前谢谢您
当然,我发布问题后就找到了解决方案...感谢this thread!需要做一些体操...
因此,只要参数是一个字符串,如:
'1234,5678'
我们需要做:
WHERE id IN UNNEST(REGEXP_EXTRACT_ALL(@ids,"[0-9a-zA-Z]+"))
REGEXP_EXTRACT_ALL-返回数组
UNNEST-如上面的链接中所述,将IN子句的数组展平。