次のような SQL ステートメントを実行したいと思います。
SELECT * FROM arr1 WHERE name IN ('arg1', 'arg2', 'arg3');
SugarORM で使用していますが、このライブラリで IN ステートメントを使用する方法がわかりません。ドキュメンテーションは本当に控えめです。OR 引数リストが長くなる可能性があるため、使用したくありません。
基本的な検索方法を使用できます。Arr1 がオブジェクト モデルの名前であると仮定します。
Arr1.find(Arr1.class," name IN(?,?,?) ",param1, param2, param3);
このコードを使用できます
public static List<Product> findByIdList(List<String> idList) {
StringBuffer queryString = new StringBuffer("id IN (");
for (int i = 0; i < idList.size(); i++) {
queryString.append("?").append(i == idList.size() - 1 ? ")" : ",");
}
List<Product> products = Product.find(Product.class, queryString.toString(), idList.toArray(new String[idList.size()]));
return products;
}