【问题标题】:Greendao - How to compare string column ignoring case?Greendao - 如何比较字符串列忽略大小写?
【发布时间】:2016-01-12 16:23:15
【问题描述】:

我在 sqlite 中有一个查询:

select * from table where upper(name) = "ABC";

greendao 中是否有执行相同查询的函数?

【问题讨论】:

    标签: android sqlite greendao


    【解决方案1】:

    您可以为此使用 LIKE。 例如:

    SELECT * FROM prices WHERE flow LIKE "Tiroirs"
    SELECT * FROM prices WHERE flow LIKE "TirOirS"
    SELECT * FROM prices WHERE flow LIKE "tiroirS"
    

    上面的三个例子在 sqlite 中的结果相同(mysql 也是,我不知道是否所有的数据库都有相同的行为)。然后你可以使用 GreenDao 的等价物:

    priceDao.queryBuilder().where(PricesDBDao.Properties.Flow.like(flow))
    

    【讨论】:

    • 如果您期待“contains”、“startsWith”或“endsWith”等行为,请记住添加“%”。即:priceDao.queryBuilder().where(PricesDBDao.Properties.Flow.like("%"+flow+"%"))
    【解决方案2】:

    试试这个 RAW 查询

    Query query = userDao.queryBuilder().where(
    new StringCondition("(select * from table where upper(name) = "ABC")").build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 2011-02-20
      • 2013-10-03
      • 1970-01-01
      相关资源
      最近更新 更多