如何在Postgres上查询“Multipicklist”类型

时间:2016-10-19 21:27:33

标签: python postgresql heroku salesforce psycopg2

我正在使用Heroku Connect(与Salesforce集成)。我的一个列的类型为“Multipicklist”。

我在Python中工作,所以使用psycopg2。

查询匹配多列表类型列中的单个变量值的正确方法是什么?

一个例子是:

custom__c有一个名为multipicklistcol__c的列。 我有一些custom__c行,multipicklistcol__c值为{'A','B','C'}

如果我有变量param = 'A',如何使用custom__c选择param行?

我尝试过几种不同的方法,但这些方法都不适用于我:

cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) <@ multipicklistcol__c;""", (param, ))

cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) IN multipicklistcol__c;""", (param, ))

cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE multipicklistcol__c includes (%s);""", (param, ))

cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) = ANY(multipicklistcol__c)""", (param, ))

1 个答案:

答案 0 :(得分:0)

你必须编写自己的类型。请参阅有关type casting的文档。也许你可以在已经处理的基类型上创建一个新的array type caster