【发布时间】:2011-12-10 09:57:40
【问题描述】:
在我的 SQLite 3 数据库中,我有一些带有土耳其字符的记录,例如“Ö”、“Ü”、“İ”等。当我使用 SELECT * FROM TABLE ORDER BY COLUMN_NAME 查询选择我的值时,以这些字符开头的记录是到了最后。
通常,它们应该出现在每个无点版本的字母之后。就像“Ö”在“O”之后,“Ü”在“U”之后。
与区域设置有关吗?有没有办法控制这些设置?
我在 Firefox 中使用 SQLite Manager 来管理我的数据库。
提前致谢。
附:我知道这不是 SQLite 的解决方案,但对于那些需要在 Objective-C 中使用 SQLite DB 的人来说,他们可以在从 SQLite DB 获取数据后对数据数组进行排序。这是一个很好的解决方案:How to sort an NSMutableArray with custom objects in it?
【问题讨论】:
-
我没有用 SQLite 做过任何这些,但也许这会有所帮助:sqlite.org/datatype3.html#collation
-
如果有,我会看看并返回这里。非常感谢。
-
您可以启用SQLite "ICU" extension 以使用重音字符进行正确排序。 My answer here 详细说明了如何在基于 Debian 的系统上进行操作。