gpt4 book ai didi

java - 在sql查询中使用变量作为列名

转载 作者:行者123 更新时间:2023-12-02 02:41:27 26 4
gpt4 key购买 nike

我正在搜索出现在表的多列中的单词(变量)。搜索必须返回找到该单词的列的名称。
我可以使用 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)){

光标永不为空

不过它可以包含 0 条记录。
您可以使用 wordQuery.getCount()

检查其长度

类似于:

if((wordQuery.getCount() > 0)){

关于java - 在sql查询中使用变量作为列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45386600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com