Android SQLite 动态插入排序(ASD 或 DESC),可能吗?
Android SQLite dynamically insert sorting (ASD or DESC), is it possible?
我正在尝试使用 dao(房间)的一种方法通过特定排序动态获取项目,但编译器为下一个 SQL 查询提供了错误
所以这不可能?我是否必须创建具有不同排序的重复方法?
您不能在 sqlite 查询中执行 if
和 else
逻辑
你应该这样使用@RawQuery
:
@Dao
interface RawDao {
@RawQuery
fun getTestItems(SupportSQLiteQuery query): DataSource.Factory
}
// Usage of RawDao
// for example set: restOfQuery = sortBy + "ASC"
val query = SimpleSQLiteQuery(
"SELECT * FROM Items ORDER BY ?",
new Object[]{ restOfQuery });
val result = rawDao.getTestItems(query);
或者另一种方法是使用多个函数进行多次排序。
我正在尝试使用 dao(房间)的一种方法通过特定排序动态获取项目,但编译器为下一个 SQL 查询提供了错误
所以这不可能?我是否必须创建具有不同排序的重复方法?
您不能在 sqlite 查询中执行 if
和 else
逻辑
你应该这样使用@RawQuery
:
@Dao
interface RawDao {
@RawQuery
fun getTestItems(SupportSQLiteQuery query): DataSource.Factory
}
// Usage of RawDao
// for example set: restOfQuery = sortBy + "ASC"
val query = SimpleSQLiteQuery(
"SELECT * FROM Items ORDER BY ?",
new Object[]{ restOfQuery });
val result = rawDao.getTestItems(query);
或者另一种方法是使用多个函数进行多次排序。