質問

次のように整数のリストを SQLTemplate IN 句にバインドしようとしています。

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

ID の文字列があります:

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

バインドを正常に動作させることができません。チェックする ID のリストとして文字列を渡しても値が返されません。

これを実行するには文字列連結を使用する必要があります (理想的ではありません)。

適切にバインドする方法について何かアイデアはありますか?

前もって感謝します。

(私は Java/Cayenne/Postgres を使用しており、パラメータとして渡された idList を使用してクエリを実行しています。これは簡略化された例であり、実際に実行している SQL ではありません)。

アップデート やり方が分かりました。以下に答えてください。

役に立ちましたか?

解決

質問を投稿するとすぐにその方法がわかりました。

文字列の代わりに、次のように整数のリストを使用します。

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

バインドを行うには、次のものが必要です。

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

その後、通常どおりパラメータを渡すと機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top