如何仅根据该记录的部分匹配返回记录?

时间:2011-06-09 22:36:19

标签: android sqlite search

我已经做了很多研究,我认为这是一个简单的问题,但我找不到我想要的东西。我只是试图将记录作为匹配返回,只有匹配记录中文本部分的搜索词。

例如,如果用户搜索“ed”,我希望返回任何包含“ed”的记录。因此,如果名称列中有一个名为“Edward”的记录,它将作为匹配返回。如果描述中有“已完成”的记录,它也会将该记录作为匹配返回。

我已经研究过全文搜索,但不确定这是否是我需要做的事情,或者它是否会做我需要的事情。

与往常一样,我不是每个人都在寻找答案,我只是在寻找方向。

2 个答案:

答案 0 :(得分:10)

以前从未使用过SQLite,但它是否有“LIKE”运算符?

在MySQL中,您可以执行以下操作:

SELECT name FROM list WHERE name LIKE '%ed%';

答案 1 :(得分:1)

如果您要查询内容提供商,这里有一些代码可以执行您想要的操作。如果直接查询sqlite数据库对象,则参数类似但不同。

String search = "ed";

// surround it with the SQL wildcard '%'
String q = "%" + search + "%"

Cursor c = getContentResolver().query(uri,
    new String[] { column1, column2 },
    "column_name like ?",
    new String[] { q },
    null);

该代码段将在uri处搜索内容提供商,以查找column_name中的字符串。