android sqlite记录的多重搜索
我正在开发一个症状检查器android应用程序,用户可以检查他可能出现的任何症状。请检查到目前为止我尝试过的内容: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
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