2

我正在尝试将整数列表绑定到 SQLTemplate IN 子句中,如下所示:

SELECT * FROM table1 WHERE id IN ( #bind($idList) );

我有一串ID:

idList = "1, 2, 3, 4";

我无法使绑定成功工作,当我将字符串作为要检查的 id 列表传递时,它不返回任何值。

我必须使用字符串连接来运行它(不理想)。

关于如何让它正确绑定的任何想法?

提前致谢。

(我正在使用 Java/Cayenne/Postgres,并使用作为参数传入的 idList 运行查询,这是一个简化的示例,而不是我正在运行的实际 sql)。

更新我想出了如何去做。下面回答。

4

1 回答 1

2

好的,我一发布问题就知道该怎么做。

不要使用字符串,而是使用整数列表,如下所示:

List<Integer> ids = {1,2,3,4,5} (pseudocode) 

要进行绑定,您需要以下内容:

SELECT * FROM table1 WHERE id IN ( #bind($idList, 'INTEGER') );

然后像往常一样传入参数,它就会工作。

于 2009-02-05T04:35:13.970 回答