【问题标题】:Android sort sqlite query results ignoring caseAndroid排序sqlite查询结果忽略大小写
【发布时间】:2011-06-22 11:58:07
【问题描述】:

只是想知道是否有一种方法可以对忽略大小写的查询结果进行排序。因为此时以大写字母开头的字段被排序并放在列表顶部,以小写字母开头的字段也被排序但放在大写字段之后。

谢谢—— 迈克

【问题讨论】:

    标签: android sqlite sorting uppercase lowercase


    【解决方案1】:

    ORDER BY column COLLATE NOCASE;

    http://www.sqlite.org/datatype3.html#collation

    【讨论】:

    • 我尝试这样做并收到错误SQLiteException: near "COLLATE": syntax error: , while compiling: SELECT * FROM table ORDER BY column ASC COLLATE NOCASE。解决方法是去掉ASC,只有在DESC时才指定方向。
    • @unchek — 也可以试试COLLATE NOCASE ASC
    • @plowman 就像 aaz 说的,ASC 或 DESC 应该在 NOCASE 之后。
    【解决方案2】:

    在 Android 上,您会得到一个名为 LOCALIZED 的排序函数。

    指定列时,请执行以下操作:

    CREATE TABLE song(..., title TEXT COLLATE LOCALIZED ASC, ...)

    效果很好。如果您有 Android 源代码,只需搜索“COLLATE”即可查看各种示例。

    【讨论】:

      【解决方案3】:

      将所有条目转换为小写例如:select name from table order by LCASE(name)

      LCASE 或 LOWER(检查文档)

      【讨论】:

      • 为回复伙伴干杯...不过,另一种方法更容易:)
      猜你喜欢
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2018-11-14
      相关资源
      最近更新 更多