【问题标题】:Android SQLite dynamically insert sorting (ASD or DESC), is it possible?Android SQLite 动态插入排序(ASD 或 DESC),可以吗?
【发布时间】:2021-06-04 05:02:00
【问题描述】:

我正在尝试使用 dao (Room) 的一种方法通过特定排序动态获取项目,但编译器为下一个 SQL 查询给出错误

所以不可能吗?我必须创建具有不同排序的重复方法吗?

【问题讨论】:

    标签: android android-sqlite android-room android-sql


    【解决方案1】:

    你不能在sqlite查询中执行ifelse逻辑

    你应该像这样使用@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);
    

    或者另一种方式是您使用多个函数进行多个排序。

    【讨论】:

    • 有趣的解决方案,谢谢!我试试看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多