会议室数据库-使用字符串操作进行查询

时间:2019-02-20 15:25:29

标签: android sqlite android-room

我需要使用Android Room进行选择查询。 我有一个包含3列的表格:“ id”,“ pathOfFile”,“ rank” “ pathOfFile”就像“ file:///path/to/file.png”

我想选择所有文件的姓氏等于“ file.png”的路径

我写这个

SELECT  pathOfFile  
FROM FilePaths   
WHERE replace(pathOfFile, rtrim(pathOfFile, replace(pathOfFile, '/', '')), '') in ("file.png", ....)   
ORDER BY rank

如果我在PC上的SqliteBrowser上执行此查询,则没有问题。 当我写

@Query(SELECT  pathOfFile FROM FilePaths  WHERE replace(pathOfFile, rtrim(pathOfFile, replace(pathOfFile, '/', '')), '') in (:filePaths)  ORDER BY rank

Android Studio在WHERE关键字后给我一个错误“期望,得到'替换'”。

如何在这样的数据库上进行查询?

2 个答案:

答案 0 :(得分:0)

您能简化为这个房间查询吗?

SELECT pathOfFile  
FROM FilePaths   
WHERE pathOfFile LIKE :filePath
ORDER BY rank

......其中参数filePath作为"%" + actualFilePathEnding传递

答案 1 :(得分:0)

好的,我发现了问题。似乎是android studio编辑器的错误。

编辑器给我一个“替换”关键字错误,但是当我单击“运行”时,构建成功。