Android 原始查询(查询,选择参数)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10598137/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
rawQuery(query, selectionArgs)
提问by sree_iphonedev
I want to use select query for retrieving data from table. I have found, rawQuery(query, selectionArgs)
method of SQLiteDatabase
class to retrieve data. But I don't know how the query
and selectionArgs
should be passed to rawQuery
method?
我想使用选择查询从表中检索数据。我发现,检索数据rawQuery(query, selectionArgs)
的SQLiteDatabase
类方法。但我不知道query
和selectionArgs
应该如何传递给rawQuery
方法?
回答by Rawkode
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});
You pass a string array with an equal number of elements as you have "?"
您传递一个字符串数组,其元素数量与“?”相同。
回答by user1208720
Maybe this can help you
也许这可以帮助你
Cursor c = db.rawQuery("query",null);
int id[] = new int[c.getCount()];
int i = 0;
if (c.getCount() > 0)
{
c.moveToFirst();
do {
id[i] = c.getInt(c.getColumnIndex("field_name"));
i++;
} while (c.moveToNext());
c.close();
}
回答by Tarun
One example of rawQuery - db.rawQuery("select * from table where column = ?",new String[]{"data"});
rawQuery 的一个例子 - db.rawQuery("select * from table where column = ?",new String[]{"data"});
回答by Tarun
see below code it may help you.
请参阅下面的代码,它可能对您有所帮助。
String q = "SELECT * FROM customer";
Cursor mCursor = mDb.rawQuery(q, null);
or
或者
String q = "SELECT * FROM customer WHERE _id = " + customerDbId ;
Cursor mCursor = mDb.rawQuery(q, null);
回答by ComeIn
For completeness and correct resource management:
为了完整性和正确的资源管理:
ICursor cursor = null;
try
{
cursor = db.RawQuery("SELECT * FROM " + RECORDS_TABLE + " WHERE " + RECORD_ID + "=?", new String[] { id + "" });
if (cursor.Count > 0)
{
cursor.MoveToFirst();
}
return GetRecordFromCursor(cursor); // Copy cursor props to custom obj
}
finally // IMPORTANT !!! Ensure cursor is not left hanging around ...
{
if(cursor != null)
cursor.Close();
}
回答by Puneet Verma
if your SQL query is this
如果您的 SQL 查询是这样的
SELECT id,name,roll FROM student WHERE name='Amit' AND roll='7'
then rawQuery will be
那么 rawQuery 将是
String query="SELECT id, name, roll FROM student WHERE name = ? AND roll = ?";
String[] selectionArgs = {"Amit","7"}
db.rawQuery(query, selectionArgs);
回答by faeze saghafi
String mQuery = "SELECT Name,Family From tblName";
Cursor mCur = db.rawQuery(mQuery, new String[]{});
mCur.moveToFirst();
while ( !mCur.isAfterLast()) {
String name= mCur.getString(mCur.getColumnIndex("Name"));
String family= mCur.getString(mCur.getColumnIndex("Family"));
mCur.moveToNext();
}
Name and family are your result
名字和家庭是你的结果