我正在尝试执行SQL查询Sugar。但是我遇到了异常。 这是我正在执行的查询。
ArrayList<Folder> mFolderList = (ArrayList<Folder>) Folder.findWithQuery(Folder.class, "Select * from Folder where folderPath = " + mFileLists[i].getParent() + " and imagePath = " + mFileLists[i].getAbsolutePath());
此处folderPath的值是设备内部存储器的文件夹路径,例如:/ storage / emulated / 0 / Download
但是我得到了
的例外W/System.err: android.database.sqlite.SQLiteException: near "/": syntax error (code 1): , while compiling: Select * from Folder where folderPath =/storage/emulated/0/Download and imagePath = /storage/emulated/0/Download/.nomedia
我在此查询中找不到任何错误。有人可以帮助我吗?
答案 0 :(得分:1)
您的图片路径和文件夹路径包含“ /”,而sqlite查询不接受。.
您可以使用DatabaseUtils逃脱此操作...
ArrayList<Folder> mFolderList = (ArrayList<Folder>) Folder.findWithQuery(Folder.class, "Select * from Folder where folderPath = " + DatabaseUtils.sqlEscapeString(mFileLists[i].getParent()) + " and imagePath = " + DatabaseUtils.sqlEscapeString(mFileLists[i].getAbsolutePath()));