带任何运算符的Postgresql prepare语句

带任何运算符的Postgresql prepare语句,postgresql,prepared-statement,Postgresql,Prepared Statement,从tbl_emp中选择*,其中利息=1美元,emp_id=任何(?) 上述声明在功能PQprepare中使用是否正确 如果是,nParms的值应该是多少?如何调用pqExecute 问候,, Mayank如果您试图准备类似于=ANY(1,2,3)的内容,这不会直接起作用,因为1,2,3是一个语法结构,而不是一个表达式。(当然你可以做=ANY($2,$3,$4),但这只有在你确切知道你有多少个值的情况下才行。) 但是你可以用数组。上面的代码相当于=ANY(数组[1,2,3]),因此您可以编写 SE

从tbl_emp中选择*,其中利息=1美元,emp_id=任何(?)

上述声明在功能PQprepare中使用是否正确

如果是,nParms的值应该是多少?如何调用pqExecute

问候,,
Mayank

如果您试图准备类似于
=ANY(1,2,3)
的内容,这不会直接起作用,因为
1,2,3
是一个语法结构,而不是一个表达式。(当然你可以做
=ANY($2,$3,$4)
,但这只有在你确切知道你有多少个值的情况下才行。)

但是你可以用数组。上面的代码相当于
=ANY(数组[1,2,3])
,因此您可以编写

SELECT * FROM tbl_emp WHERE interest = $1 AND emp_id = ANY($2)
参数的类型是,比如,
int
int[]


要调用
PQexecPrepared
,需要一个数组作为字符串文本。类似于
“{1,2,3}”
(作为C字符串)的东西就可以了。有关详细信息,请参见。

如果您试图准备类似于
=ANY(1,2,3)
的内容,这将不会直接起作用,因为
1,2,3
是一个语法结构,而不是表达式。(当然你可以做
=ANY($2,$3,$4)
,但这只有在你确切知道你有多少个值的情况下才行。)

但是你可以用数组。上面的代码相当于
=ANY(数组[1,2,3])
,因此您可以编写

SELECT * FROM tbl_emp WHERE interest = $1 AND emp_id = ANY($2)
参数的类型是,比如,
int
int[]


要调用
PQexecPrepared
,需要一个数组作为字符串文本。类似于
“{1,2,3}”
(作为C字符串)的东西就可以了。有关详细信息,请参阅。

非常感谢Peter。不管你说什么都很管用。(尽管我无法投票支持它,因为它需要15个声誉)。我在考虑使用PQexec并传递PREPARE和EXECUTE语句,而不是使用PQprepare和PQexecPrepared。这将是一个实际的性能问题。非常感谢Peter。不管你说什么都很管用。(尽管我无法投票支持它,因为它需要15个声誉)。我在考虑使用PQexec并传递PREPARE和EXECUTE语句,而不是使用PQprepare和PQexecPrepared。这将是一个实际的性能问题。