错误:对于参数类型的运算符 = 没有匹配的签名:STRUCT<id STRING, name STRING>, STRING。支持的签名:ANY = ANY at [4:7]

Posted

技术标签:

【中文标题】错误:对于参数类型的运算符 = 没有匹配的签名:STRUCT<id STRING, name STRING>, STRING。支持的签名:ANY = ANY at [4:7]【英文标题】:Error: No matching signature for operator = for argument types: STRUCT<id STRING, name STRING>, STRING. Supported signatures: ANY = ANY at [4:7] 【发布时间】:2018-07-18 08:30:31 【问题描述】:

我添加了一个使用标准 sql 的公共数据库。如下所示:

我添加了#standardsql,另外我从设置中更改了它。查询如下:

#standardsql
SELECT field1,field2
FROM `censys-io.domain_public.current`
WHERE filed3 = "some_string_here";

我收到此错误:

 Error: No matching signature for operator = for argument types: STRUCT<id STRING, name STRING>, STRING. Supported signatures: ANY = ANY at [4:7]

请告诉我问题的原因和解决方法

【问题讨论】:

令人困惑。能否详细说明。项目所有者有帖子here。我正在运行第二个查询:#standardsql SELECT domain, alexa_rank FROM domain_public.20171006 WHERE p443.https.tls.cipher_suite = 'TLS_RSA_WITH_AES_256_CBC_SHA'; 为什么它对我不起作用?从他们的帖子中,他们声称它应该与 BigQuery 一起使用。你能解释一下问题吗? 好吧,表名的唯一区别是:而不是FROM domain_public.20171006,我输入了FROM domain_public.current,这是我在面板中看到的一个表,如OP中的屏幕截图所示。 能否提供表domain_public.current的架构。至少p443.https.tls.cipher_suite列的数据类型 @enle lin 感谢您的指点。这解决了部分问题。 p443.https.tls.cipher_suite 是 RECORD,我应该使用 p443.https.tls.cipher_suite.name 这是一个字符串。解决此问题后,this error 即使在我尝试了所有可能的处理位置后仍未解决。你能帮忙吗? 如果我发现一些有趣的东西,@user9371654 将在另一个问题中回答。在这个问题上,我认为windmark的答案是正确的,因为他在这里指出了问题。 【参考方案1】:

检查错误

Error: No matching signature for operator = for argument types: STRUCT<id STRING, name STRING>, STRING. Supported signatures: ANY = ANY at [4:7]

告诉我们你的线路

WHERE filed3 = "some_string_here";

有一个不正确的比较。左侧有STRUCT&lt;id STRING, name STRING&gt;,这使得filed3 看起来像是一个结构字段或一个单独的表。因此,将其与字符串“some_string_here”进行比较是无效的。

【讨论】:

以上是关于错误:对于参数类型的运算符 = 没有匹配的签名:STRUCT<id STRING, name STRING>, STRING。支持的签名:ANY = ANY at [4:7]的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 错误:运算符没有匹配的签名 >=

在数据迁移时,出现错误:运算符不存在:布尔 = 整数提示:没有运算符与给定的名称和参数类型匹配

在 BigQuery 中按 Max(values) 返回列的名称。错误:“运算符 CASE 没有匹配的签名;”大查询

没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。 -- Netbeans、Postgresql 8.4 和 Glassfish

函数 TIMESTAMP_DIFF 没有匹配的签名...... BigQuery 上的错误

Python 参数类型与 C++ 签名不匹配