我们如何搜索自己的SQLite?

时间:2011-11-20 20:48:56

标签: android sqlite

我有一个包含很多表的Sqlite,我想创建一个能够在SQL上搜索的TextBox,我该怎么做?

1 个答案:

答案 0 :(得分:1)

首先:这个问题太大了。第二:你通常不希望人们搜索你的整个数据库...原因很明显:他们不应该看到的内容,如其他用户的密码。 因此,您必须编译应首先搜索的所有内容的列表。在数据库中的每个表上,您可以搜索列,例如:

SELECT linkToResource FROM tableName WHERE allowedContent1 like '%searchphrase%' or allowedContent2 like '%searchphrase%';

假设您的表格形状为ID, linkToResource, allowedContent1, allowedContent2, secretContent1, secretContent2

在Android中,该语句如下所示:

    public List<String> getLinksToSearchResults(String searchphrase) {
    List<String> result = new ArrayList<String>();

    Cursor c = yourDatabase.query(
            "yourTableName", 
            new String[] { "linkToResource" }, // The column you want as a result of the Query
            "allowedContent1 like '%?%' OR allowedContent2 like '%?%'", // The where-Clause of the statement with placeholders (?)
            new String[] { searchphrase, searchphrase }, // One String for every Placeholder-? in the where-Clause
            null, // if you like a order by put it here
            null, // group by here
            null  // having here
            );
    while (c.moveToNext()) {
        result.add(c.getString(0));
    }
    c.close();
    return result;
}

您可以从EditText中检索字符串,如下所示:

String searchphrase = searchphraseEditText.getText();

希望你对它有所了解:D
下次请提供一些更精确问题的代码(例如“为什么以下代码不会返回四位数的int?”)

享受!