android sqlite记录的多重搜索

android sqlite记录的多重搜索,android,sqlite,Android,Sqlite,我正在开发一个症状检查器android应用程序,用户可以检查他可能出现的任何症状。请检查到目前为止我尝试过的内容: public String getData(String[] symptoms) { String search = ""; Cursor c = myDataBase.query(DB_TABLE, new String[] {KEY_CONDITIONS}, KEY_SYMPTOMS + "= ? ", symptoms, nul

我正在开发一个症状检查器android应用程序,用户可以检查他可能出现的任何症状。请检查到目前为止我尝试过的内容:

   public String getData(String[] symptoms) {
    String search = "";
    Cursor c = myDataBase.query(DB_TABLE, new String[] 
            {KEY_CONDITIONS}, KEY_SYMPTOMS + "= ? ", symptoms, null, null, null);

    c.moveToFirst();

    while (c.isAfterLast() == false) {
        search += c.getString(0) + ", ";
        c.moveToNext();
    }

    return search;

}

但我需要动态生成where字符串,因为我不知道会选择多少症状。我将如何做到这一点?你的帮助将得到真正的感谢。谢谢

诀窍是,数组中的每个字符串必须有一个插入字符(

一种解决方案是使用循环:

String where = KEY_SYMPTOMS + " = ?";
String relation = " OR "; /* Maybe " AND "? */

StringBuilder builder = new StringBuilder(where);
for(int i = 1; i < symptoms.length; i++)
    builder.append(relation).append(where);

Cursor c = myDataBase.query(DB_TABLE, new String[] 
        {KEY_CONDITIONS}, builder.toString(), symptoms, null, null, null);

谢谢你的快速回复。如何限制结果中的重复记录?请使用具有限制的其他方法。(将
,“10”
添加到当前的
query()
)我的意思是,如果用户选择了多个症状,并且如果该条件/疾病有多个症状,当然该条件将根据用户选择的症状显示不止一次。您还可以告诉我如何操作吗?对不起,我对数据库编程有点陌生。是的,我有重复的记录。我把它设置为真。然后它工作得很好。谢谢
while (c.moveToNext())
    search += c.getString(0) + ", ";  // A StringBuilder should be faster