Android排序SQLite查询结果,忽略大小写

21

请问是否有一种忽略大小写的方式来对查询结果进行排序。目前,以大写字母开头的字段会被排序并排在列表的顶部,以小写字母开头的字段也会被排序,但是它们会被放在大写字母字段之后。

谢谢 -- Mike

3个回答

52

3
我尝试这样做,但出现了错误:SQLiteException: near "COLLATE": syntax error: , while compiling: SELECT * FROM table ORDER BY column ASC COLLATE NOCASE。解决方法是删除 ASC 并只在需要时指定 DESC 方向。 - plowman
9
@unchek — 也尝试使用 COLLATE NOCASE ASC。 (说明:该语句是提供给程序员的SQLite数据库指令,用于在排序时忽略大小写。翻译时保持了原文的技术术语,并简化了表述方式以使其更易理解。) - aaz
2
@plowman 就像aaz所说的一样,ASC或DESC应该在NOCASE之后。 - Surya Wijaya Madjid

1

在Android上,您可以使用名为LOCALIZED的排序函数。

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

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

它非常有效。如果您有Android源代码,请搜索“COLLATE”以查看各种示例。


0

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

LCASE或LOWER(请查看文档)


谢谢你的回复,伙计...不过另一种方法更简单 :) - mixkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接