@> 在 SQL 中是啥意思

Posted

技术标签:

【中文标题】@> 在 SQL 中是啥意思【英文标题】:What does @> mean in SQL@> 在 SQL 中是什么意思 【发布时间】:2019-05-23 16:22:06 【问题描述】:

您好,我有在 select 语句中使用 @> 的代码。我需要将查询从 redash 对应项更改为 bigquery。

我已经搜索了@,这意味着该参数将被采用,以防止它被sql注入。

select 
u.user_kvs IS NOT NULL AND u.user_kvs @> 'google_authenticator_enabled=>1'
from 
sometable

不确定它的作用。就是这个问题。

【问题讨论】:

为什么这个标签是 bigquery 和 postgresql?请消除歧义 Bigquery 不支持动态 sql,因此您必须在提交 sql 之前使用自己的代码替换 @。没有早/晚绑定的概念。 @TamirKlein BigQuery 支持cloud.google.com/bigquery/docs/parameterized-queries 是的,我知道它仍然与 sql 中的 @ 概念不同,因为这是一个 api。然而,这可能是问题解决方案的一部分,尽管我觉得这个问题需要更多细节才能更好地回答。 【参考方案1】:

对于 BigQuery 中的参数化查询,

使用@ 字符后跟标识符,例如@param_name。 [...] 或者,使用占位符值?

https://cloud.google.com/bigquery/docs/parameterized-queries。

例如:

#standardSQL
SELECT word, word_count
FROM `bigquery-public-data.samples.shakespeare`
WHERE corpus = @corpus
AND word_count >= @min_word_count
ORDER BY word_count DESC;

您必须在查询时通过 API 提供此参数的值。

【讨论】:

以上是关于@> 在 SQL 中是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

<>(尖括号)在 MS-SQL Server 中是啥意思?

in在sql中是啥意思

tinyint(3) 在 (SQLite) SQL 中是啥意思?

旧式 JOIN 语法在 T-SQL 中是啥意思?

declare 在SQL中是啥意思,怎么用?

这个 Oracle SQL Developer 图标在我的存储过程中是啥意思?