前言 :领带安排,将我们一款量表app做一款离线版本。因为说医院可能有些地方没有外网,且不想提供量表测试数据。所以我就用room数据库,自己做了本地数据库。
问题:当我遇到多条件筛选时,因为Room的查询语句是提前写在Dao里的。如何写呢?上干货
如果name有数据,就按name去查,如果name为空数据,就查全部
@Query("SELECT * FROM PeopleBean WHERE :name='' or name= :name")
Single<List<PeopleBean>> getAllTest(String name);
如果是多参数的情况呢,别急往下看。
这里再增加一个sex字段。-1就查全部。
@Query("SELECT * FROM PeopleBean WHERE (:name='' or name=:name) and (:sex =-1 or sex=:sex)")
Single<List<PeopleBean>> getAll(String name, int sex);
希望对朋友们有帮助。