0

我在 SQLite 数据库中有一些数据,我想在列表视图中提供基本的搜索功能。

这是我希望能够解决的搜索查询示例:

1)sqlite数据示例:

  • 广告
  • 公元前
  • 光盘
  • d
  • 欧共体

2)输入和想要的输出:

  • a -> [ 广告 , da ]
  • d -> [ d , da , 广告 , cd ]
  • c -> [ cd, bc , ec ]

我已经想到了一些事情,但没有什么好说的:

  1. 全文搜索:我无法修改输入数据库文件,所以我认为我无法使用它
  2. 一个 sqlite 查询(name LIKE ?% OR name LIKE %?%):未排序。也许可以找出我不知道的另一个查询
  3. 两个不同的查询(name LIKE ?%然后name LIKE %?%):但是如何用内容提供者来实现呢?游标包装?合并光标?自定义加载器?

我看过很多例子,但对我的自定义搜索没有任何用处。

谢谢你的帮助。

编辑:查询d应该给出[d,da,ad,cd]。

我想要的自定义排序顺序是: LIKE pattern% AND 然后 LIKE %pattern% (例如socks应该在之前a pair of socks

4

2 回答 2

1

CursorLoader 构造函数的最后一个参数是sortOrder- 添加name列作为sortOrder对结果集进行排序(请注意,将其留空,因为SQLiteDatabase.query可能导致未排序的顺序)。

于 2013-09-03T20:39:30.170 回答
1

这是满足您要求的一些技巧:

SELECT DISTINCT t.name
FROM (select *, 1 as sec from items WHERE name LIKE 'd%'
union
select *, 2 as sec from items WHERE name LIKE '%d%') as t 
ORDER BY t.sec ASC
于 2013-09-03T21:04:17.093 回答