0

我有五列,我想从五列中搜索数据,但列值可以超过 5,它不固定。

例子

列名

名字,姓氏,主题,结果,等级。

我想使用 sqlite 搜索多个值。(名字可以是 a、b、c、d)

如何做到这一点?

任何帮助,将不胜感激。

4

2 回答 2

2

在 SQLite 中使用IN关键字将允许您使用一组多个值执行搜索。例如:

SELECT * FROM table WHERE first-name IN ('a', 'b', 'c', 'd');

现在您可以做的是使用任何循环构建输入(可搜索词)参数并将其替换在IN括号中。

例如:

String names = "'a', 'b', 'c', 'd'";      /* build it through loop */

Cursor c = db.rawQuery("SELECT * FROM table WHERE first-name IN (?)",
              new String[]{names});

多列:

String names = "'a', 'b', 'c', 'd'";      /* build it through loop */

Cursor c = db.rawQuery("SELECT * FROM table WHERE first-name IN (?)
         OR last-name IN (?) OR subject IN (?) OR result IN (?) OR grade IN (?)",
         new String[]{names, names, names, names, names});
于 2012-08-29T08:04:10.943 回答
0
String[] names = new String[3];
String QueryArgs ="";   
for(int index=0;index < 3;index++)
{
      QueryArgs = QueryArgs.concat(",?");
      names [index] = "xyz";
}
QueryArgs = QueryArgs.substring(1);

Cursor dataset = db.rawquery("select * from table where name in(" +QueryArgs+ ")",names);
于 2013-10-18T13:49:28.190 回答