我有五列,我想从五列搜索数据,但列值可能超过5,而且不固定。
实施例
列名
第一姓,名,主题,因此,等级。
我想使用sqlite搜索多个值。(名字可以是a,b,c,d)
如何实现这个?
任何帮助都将不胜感激。
答案 0 :(得分: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});
答案 1 :(得分: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);