sqlite 中的query操作
SQLiteDatabasedb=databaseHelper.getWritableDatabase();
Cursorcursor=db.query("person",newString[]{"personid,name,age"},"namelike?",newString[]{"%传智%"},null,null,"personiddesc","1,2");
while(cursor.moveToNext()){
intpersonid=cursor.getInt(0);//获取第一列的值,第一列的索引从0开始
Stringname=cursor.getString(1);//获取第二列的值
intage=cursor.getInt(2);//获取第三列的值
}
cursor.close();
db.close();
上面代码用于从person表中查找name字段含有“传智”的记录,匹配的记录按personid降序排序,对排序后的结果略过第一条记录,只获取2条记录。
query(table,columns,selection,selectionArgs,groupBy,having,orderBy,limit)方法各参数的含义:
table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns:要查询出来的列名。相当于select语句select关键字后面的部分。
selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:相当于select语句groupby关键字后面的部分
having:相当于select语句having关键字后面的部分
orderBy:相当于select语句orderby关键字后面的部分,如:personiddesc,ageasc;
limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。