gpt4 book ai didi

带有运算符 ANY 的 Postgresql 准备语句

转载 作者:行者123 更新时间:2023-11-29 14:05:32 25 4
gpt4 key购买 nike

SELECT * FROM tbl_emp WHERE interest = $1 AND emp_id = ANY(?)

上面的语句在函数 PQprepare 中使用是否正确?

如果是,nParams 的值应该是多少,PQexecPrepared 将如何调用?

问候,马亚克

最佳答案

如果你试图准备像 = ANY (1, 2, 3) 这样的东西,这不会直接起作用,因为 1, 2, 3 是句法结构,而不是表达式。 (当然你可以做 = ANY ($2, $3, $4),但这只有在你确切知道你有多少个值时才有效。)

但是你可以用数组来做。上面的等价于 = ANY(ARRAY[1, 2, 3]),所以你会这样写

SELECT * FROM tbl_emp WHERE interest = $1 AND emp_id = ANY($2)

参数的类型是intint[]

要调用PQexecPrepared,您需要一个数组作为字符串文字。像 "{1, 2, 3}" (作为 C 字符串)这样的东西就可以了。查看documentation了解详情。

关于带有运算符 ANY 的 Postgresql 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5847986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com