我正在搜索出现在表的多列中的单词(变量)。搜索必须返回在其中找到单词的列的名称。
我可以使用 foreach 循环分别遍历每一列,并在返回的游标不为空时知道该特定列中该词的存在。
问题在于如何在 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});
但是,它只是对所有列的名称进行烘烤。
你的错误在这里:
if(!(wordQuery==null)){
游标永远不会为 null。
但是,它可以包含 0 条记录。
您可以使用以下方法检查其长度wordQuery.getCount()
就像是:
if((wordQuery.getCount() > 0)){
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句