使用 RoomBD 我可以在 DAO 中進行這樣的查詢:
@Query("SELECT * FROM table "
"WHERE field1 LIKE :param1 "
"OR field1 LIKE :param2 "
"OR field1 LIKE :param3")
public LiveData<List<Table>> filterTableData(String param1, String param2, String param3);
...但關鍵是我需要使用可變數量的過濾引數來執行這種 SELECT 陳述句,所以我不必filterTableData在 DAO 中冗余創建多個方法,這些方法會做完全相同的事情但使用不同的過濾引數的數量。有沒有辦法這樣做?
// XXX What I'd like it to be (SQL is pseudocode here)
@Query("SELECT * FROM table WHERE field1 LIKE :any_of_the_parameters")
public LiveData<List<Table>> filterTableData(ArrayList<String> params);
uj5u.com熱心網友回復:
我還沒有測驗過這個,但根據這個鏈接,這可能會完成OR類似過濾的作業:
@Query("SELECT * FROM table WHERE field1 IN(:params)")
LiveData<List<Table>> filterTableData(List<String> params);
但是,我對AND-like 過濾(還)沒有任何想法......
uj5u.com熱心網友回復:
使用引數串列以編程方式創建查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353202.html
標籤:爪哇 安卓 sql sqlite android-room
下一篇:where條件中的OR子句
