【发布时间】:2020-03-25 16:46:57
【问题描述】:
我目前正在编写一个通过他们的“@google-cloud/bigquery”:“^2.0.6”库访问 google bigquery 的应用程序。在我的一个查询中,我有一个 where 子句,我需要在其中传递一个 id 列表。如果我在他们的示例中使用 UNNEST 并传递一个字符串数组,它工作正常。
https://cloud.google.com/bigquery/docs/parameterized-queries
但是,我发现 UNNEST 可能真的很慢,只想单独使用 IN 并传入一个字符串列表。无论我发送什么格式的字符串列表,查询都会返回空结果。我认为这是因为他们转换参数的方式以避免sql注入。我必须使用一个参数,因为我自己想避免对我的应用程序进行 SQL 注入攻击。如果我只传递一个 id 它工作正常,但如果我传递一个列表它会爆炸,所以我认为它与格式化有关,但我知道我的格式在 IN 通常期望的方面是正确的,即 IN ('' , '')
有没有人能够将一个参数传递给 IN 并让它工作?即 IN (@idParam)?
【问题讨论】:
-
对不起,应该是 IN ("id1", "id2")
标签: node.js parameters google-bigquery