我在我的项目中使用大查询,并根据一些用户的输入准备一个查询,这些输入都是作为查询中的参数。
我们如何才能以最好的方式做到这一点?
对于java,我们使用了准备语句。
是他们的一些东西,比如prepared-statement for 大查询。
或者您是否可以提供最佳的方法来转义,这个用户输入可以添加到大查询的SQLQuery中。
发布于 2018-05-21 09:09:40
BigQuery现在支持参数化查询。您可以在?
中使用像?
和位置参数这样的标识符。
文档中的Java示例:
String query =
"SELECT word, word_count\n"
+ "FROM `bigquery-public-data.samples.shakespeare`\n"
+ "WHERE corpus = @corpus\n"
+ "AND word_count >= @min_word_count\n"
+ "ORDER BY word_count DESC";
// Note: Standard SQL is required to use query parameters.
QueryJobConfiguration queryConfig =
QueryJobConfiguration.newBuilder(query)
.addNamedParameter("corpus", QueryParameterValue.string(corpus))
.addNamedParameter("min_word_count", QueryParameterValue.int64(minWordCount))
.build();
https://cloud.google.com/bigquery/docs/parameterized-queries
发布于 2015-02-03 16:11:33
BigQuery不支持准备好的语句(或任何类似的语句),因此最有效的解决方案可能是将查询字符串分解为片段,并将它们与用户提供的值连接起来。连接字符串的最快方法似乎只是使用'+‘操作符,通过这些旧的帖子:
https://stackoverflow.com/questions/28275024
复制相似问题