Sugar ORmを使用しており、次のクエリを使用する必要があります。
public void selectByfriendId(String fId , int lastMsgId){
select from table where (senderId = fId or receiverId = fId) and
( show = "1" and msg_Id > lastMsgId)
}
そしてThat5は私の方法です:
public List<Chat> selectById(String cId , String fId , int lastMsgId){
Select showChats = Select.from(Chat.class)
.where(Condition.prop("senderid").eq(fId) ,
Condition.prop("show").eq("1") , Condition.prop("msg_Id").gt(lastMsgId))
.or(Condition.prop("receiverid").eq(fId), Condition.prop("show").eq("1") ,
Condition.prop("msg_Id").gt(lastMsgId));
Log.v(G.Logs.DB , "MessagesStack DataBase.SelectById showChats.list().size : " + showChats.list().size());
return showChats.list();
}
そして、これを試しました:
List<Chat> array = Chat.find(Chat.class , "(senderid = ? OR receiverid = ?) AND (show = ? AND msg_Id > ?)", fId , fId , "1" , ""+lastMsgId);
しかし、テーブル内の行全体が表示されます