当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误

Posted

技术标签:

【中文标题】当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误【英文标题】:When I use Any in Redshift , crash it : syntax error at or near "," 【发布时间】:2019-11-26 18:22:56 【问题描述】:
var variable ="Select columns1,columns2,columns3 from schema.table where columns1 = ANY(@idsNumber)";

connection.Query(variable, new  idsNumber= new[]  123, 432  ).ToList();

我有这段代码用于搜索我的 Redshift 数据库中的记录,但是当执行此代码时,他会崩溃一个错误

无效操作:“,”或附近的语法错误

我不知道为什么会这样,Redshift 基于 postgres,而 postgres 使用 ANY not IN(IN 也不起作用)。

编辑

我使用 dapper,并像这样在 DAO 中声明我的连接

using (var connection = new NpgsqlConnection(RedshiftConnection.GetSecret(context, ESecretNameRedShift.DatabaseName)))
        

你能帮帮我吗?

【问题讨论】:

能否请您显示更多代码,以便我们尝试重现您的情况?例如,connection 是在哪里定义的,您使用的是什么驱动程序?另外,请向我们展示IN 不起作用的示例。 (您可以编辑您的问题以添加这些详细信息。) 好的,我现在就这样做 我也收到同样的错误“[Amazon](500310) Invalid operation: syntax error at or near ",", 当试图在 SQL WORKBENCH/J IDE(Build 125)。这是我的脚本“ALTER TABLE employeetest ADD COLUMN last_name varchar(100) DEFAULT NULL, ADD COLUMN email varchar(100) DEFAULT NULL;” 【参考方案1】:

来自***: SELECT * FROM X WHERE id IN (…) with Dapper ORM:

string sql = "SELECT * FROM SomeTable WHERE id IN @ids"
var results = conn.Query(sql, new  ids = new[]  1, 2, 3, 4, 5 );

【讨论】:

以上是关于当我在 Redshift 中使用 Any 时,它会崩溃:在“,”或附近出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章