我想在表中查询字段id,其中一些值如1,5,4,11,它们将根据选择来自前一个屏幕.
cursor = database.query(tablename,
new String[] { "TopName" }, "id =?", new String[]{"2,3"}, null, null, null);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到游标计数0,新的String [] {"2"}我得到的值我想要的所有id的字符串数组中的值像OR那样在该列中有值.
Lal*_*ani 18
您可以像这样使用IN运算符,
cursor = database.query(tablename, new String[] {"TopName"}, "id IN(?,?)",
new String[]{"2","3"}, null, null, null);
Run Code Online (Sandbox Code Playgroud)
ps2*_*010 17
在Android的ContentProvider中使用IN运算符的正确语法如下:
cursor = database.query(contentUri, projection, "columname IN(?,?)", new String[]{"value1" , "value2"}, sortOrder);
Run Code Online (Sandbox Code Playgroud)
或者,我们也可以使用,
cursor = database.query(contentUri, projection, "columnName IN(?)", new String[] {" 'value1' , 'value2' "}, sortOrder);
Run Code Online (Sandbox Code Playgroud)
请注意,我们需要在第二种情况的参数中围绕每个逗号分隔值使用单引号,否则整个字符串将被视为该列的一个值.SQL会将其视为
SELECT*FROM表WHERE columnName IN('value1,value2')
而不是正确的语法
SELECT*FROM表WHERE columnName IN('value1','value2')
VolkerK是第一个正确回答这个问题的人,但为了完整起见,这里有一个如何使用IN运算符的完整示例:
cursor = database.query(tablename,
new String[] { "TopName" }, "id IN (?)", new String[]{"2,3"}, null, null, null);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15215 次 |
最近记录: |