我正在搜索在表的多列中出现的单词(变量)。搜索必须返回找到该单词的列的名称
我可以使用foreach循环分别遍历每个列,并在返回的游标不为null时知道该特定列中是否存在该单词。
问题在于如何在SQL查询或rawQuery中使用两个不同的变量(一个用于列名,一个用于单词)。
我的代码如下:
String[] columnsList = {"col1","col2","col3"};
String[] wordsList = {"fireman","camper","builder"};
for(String i : wordsList){
for(String j : columnsList){
Cursor wordQuery = myDatabaseHandle.rawQuery("Select * from myTableOne WHERE " + j + " = ?",new String[]{i});
if(!(wordQuery==null)){
Toast.makeText(this,j+"is success",Toast.LENGTH_SHORT).show();
}
}
}
但我无法得到答案。我使用了一个单独的字符串:
String queryString = "Select * from myTableOne WHERE " + j ;
并在查询中
Cursor WordQuery = myDatabaseHandle.rawQuery(queryString+" = ?",new String[]{i});
但是,它只是烘烤所有列的名称。
答案 0 :(得分:2)
您的错误在这里:
if(!(wordQuery==null)){
光标永不为空。
但它可以包含0条记录
您可以使用wordQuery.getCount()
类似的东西:
if((wordQuery.getCount() > 0)){