query(table,columns, selection, selectionArgs, groupBy, having, orderBy, limit)
方法各参数的含义:
table
:表名。相当于
select
语句
from
关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns
:要查询出来的列名。相当于
select
语句
select
关键字后面的部分。
selection
:查询条件子句,相当于
select
语句
where
关键字后面的部分,在条件子句允许使用占位符
“?”
selectionArgs
:对应于
selection
语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy
:相当于
select
语句
group by
关键字后面的部分
having
:相当于
select
语句
having
关键字后面的部分
orderBy
:相当于
select
语句
order by
关键字后面的部分,如:
personid desc, age asc;
limit
:指定偏移量和获取的记录数,相当于
select
语句
limit
关键字后面的部分。
例如,查询图片数据库并按照编辑时间倒序:
String columns[] = new String[] { Media._ID, Media.BUCKET_ID,
Media.PICASA_ID, Media.DATA, Media.DISPLAY_NAME, Media.TITLE,
Media.SIZE, Media.BUCKET_DISPLAY_NAME };
Cursor cur = cr.query(Media.EXTERNAL_CONTENT_URI, columns, null, null,
Media.DATE_MODIFIED + " desc"); // 按编辑时间倒序