2011-03-11 58 views
5

我想使用内置的SQLite函数,我不知道如何格式化查询。如何格式化WHERE子句和?,可以去那里:如何格式化WHERE子句和'?'在SQLite查询?

column [] = {"name"}; 
selectionArg [] = {"john}; 
Select name from mytable where id = "john" 

db.query(mytable, column, id = ?, selectionArg, null,null,null); 

我不是在那里我可以测试它,但我想要得到它在第一时间。我不确定?是否需要"?"或者如果是id = + "?"等等。我似乎无法找到任何格式的例子。

回答

18

对于查询:

select name from mytable where id = "john" 

使用

(SQliteDatabase) db.query(
    "mytable" /* table */, 
    new String[] { "name" } /* columns */, 
    "id = ?" /* where or selection */, 
    new String[] { "john" } /* selectionArgs i.e. value to replace ? */, 
    null /* groupBy */, 
    null /* having */, 
    null /* orderBy */ 
); 
+0

我希望你不要我记得我编辑了你的答案,因为它基本上是更好的答案;) – user634618 2011-03-11 17:37:44

+0

没问题...谢谢! – Karan 2011-03-11 18:31:40

2

不得使用周围的问号报价

例如:

db.query(
      true, 
      "tablename", 
      new String[] { 
       "col1", 
       "col2" 
      }, 
      "col1 = ?", 
      new String[]{ "value" }, 
      null, 
      null, 
      null, 
      null 
     );