使用com.couchbase.client, java-client
版本2.2.7
我一直無法得到使用與多個項目看我的示例查詢和Java代碼中的IN語句n1ql查詢工作如下Couchbase參數N1QL查詢在聲明
public int getCountForDuration(Long startTime, Long endTime, String ids){
JsonObject placeHolders = JsonObject.create().put("ids", ids).put("startTime", startTime).put("endTime", endTime);
N1qlQuery query = N1qlQuery.parameterized(COUNT_STATEMENT, placeHolders)
N1qlQueryResult result = bucket.query(query);
...
}
public static final String COUNT_STATEMENT = "select count(*) as count " +
"from bucketName " +
"where docType = 'docId' " +
"and (id IN [$ids]) " + <----- OFFENDING LINE
"and publishTimestamp between $startTime and $endTime";
我試着使用('),(「)設置ids
,和(`),如:
ids = "'123', '456'";
ids = "\"123\" , \"456\";
ids = "`123`,`456`";
這些都不是當有多個ID但是如果只有一個諸如ids = "'123'"
它工作正常,工作也是我查詢工作如果我在終端上使用CBQ。
我的問題是,我如何創建參數化的N1QL查詢,其中 可以在IN語句中取多個項目?
放錯了地方的括號應該是「和(身份證件([$ IDS] ))「 – Stavm