1

我使用标准方法在 ListView 中显示我的数据库记录:

recordsCursor = mDb.query(DATABASE_BL_TABLE, new String[] {KEY_BL_ROWID, KEY_BL_SENDER, KEY_BL_ADDED}, null, null, null, null, KEY_BL_SENDER);
startManagingCursor(recordsCursor);

String[] from = new String[]{DbAdapter.KEY_BL_SENDER};
int[] to = new int[]{R.id.text1};
adapter = new SimpleCursorAdapter(this, R.layout.mylist_row, recordsCursor, from, to);
setListAdapter(adapter);

因此,所有记录都按 排序KEY_BL_SENDER。我想实现以下排序逻辑:

  1. 忽略大小写(因此,4 个元素的列表 - aabbAABB将按以下顺序显示:AAaaBBbb);
  2. 忽略除字母以外的其他符号(4 个元素的列表 - ** aa **~bb~aa__BB__将按以下顺序显示:aa** aa **__BB__~bb~)。

我怎么能做到?

4

1 回答 1

2

让我们加入一些已知的解决方案:

您的查询将如下所示:

SELECT ... 
FROM ... 
WHERE ... 
ORDER BY 
    TRIM(KEY_BL_SENDER, "_*~ #$") 
    COLLATE NOCASE ASC;
于 2013-11-08T17:33:52.623 回答