我有 5 个用于过滤的编辑输入字段,用户可以在 5 中的任何编辑字段中提供输入。根据用户输入,我如何使用 Room 单个查询来过滤单个表中的唯一行按钮点击 android?
尝试这给了我多个值通过标准,我想要唯一的值
@Query("SELECT * from TBL_PHYSICAL_COUNT_LIST where ((SUBINV IS NOT NULL AND SUBINV != '') AND SUBINV=(:subInv)) OR ((LOCATOR IS NOT NULL AND LOCATOR != '') AND LOCATOR=(:locatorNumber)) OR ((ITEMNUMBER IS NOT NULL AND trim(ITEMNUMBER) > '') AND ITEMNUMBER=(:itemNumber)) OR ((LOTNUMBER IS NOT NULL AND LOTNUMBER != '') AND LOTNUMBER=(:lotNumber)) OR ((TAGNUMBER IS NOT NULL AND trim(TAGNUMBER) <> '') AND TAGNUMBER=(:tagNumber))")
List<TBL_PHYSICAL_COUNT_LIST> getTblPhysicalCountListByFilter(String subInv,String locatorNumber,String itemNumber,String lotNumber,String tagNumber) ;
对于 EG:说我输入标记号 '0601' 和项目编号 = '1000004',查询应返回图像中的第一个元素,另一个例如说用户选择 subInventory = 'Accessorie',locatorNumber = '2',lotnumber = '2010,查询应返回图像中的第二个元素,因此基于用户输入我想要 1 个查询,应忽略空白输入并根据提供的输入进行过滤

我通过更新这样的查询来解决它:
@Query("SELECT * from TBL_PHYSICAL_COUNT_LIST " +
"where (:subInv IS NOT NULL AND SUBINV LIKE :subInv || '%') " +
"AND (:locatorNumber IS NOT NULL AND LOCATOR LIKE :locatorNumber || '%') " +
"AND (:itemNumber IS NOT NULL AND ITEMNUMBER LIKE :itemNumber || '%') " +
"AND (:lotNumber IS NOT NULL AND LOTNUMBER LIKE :lotNumber || '%') " +
"AND (:tagNumber IS NOT NULL AND TAGNUMBER LIKE :tagNumber || '%') ")
List<TBL_PHYSICAL_COUNT_LIST> getTblPhysicalCountListByFilter(String subInv,
String locatorNumber,
String itemNumber,
String lotNumber,
String tagNumber);
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(8条)