当前位置:  开发笔记 > 后端 > 正文

android:查询中的ORDER BY

如何解决《android:查询中的ORDERBY》经验,为你挑选了3个好方法。

我有一个使用本地sqlite数据库的Android应用程序.

private SQLiteDatabase mDb;

当我运行这个查询时,我根据需要将我的Cursor放在pid等于id的行上:

mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, 
    KEY_PID+" = "+id, null, null, null, null, null);        

当我运行以下查询,旨在获得相同的结果集,由pid命令我得到" android.database.sqlite.SQLiteException:datatype mismatch "

mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, 
    KEY_PID+" = "+id, null, null, null, null, KEY_PID+" DESC");

有任何想法吗?



1> outis..:

看起来你有点混淆了.根据SQLiteDatabase.query文档,最后一个参数是该LIMIT子句.倒数第二个是ORDER BY条款.

Cursor query (boolean distinct, 
            String table, 
            String[] columns, 
            String selection, 
            String[] selectionArgs, 
            String groupBy, 
            String having, 
            String orderBy, // <-- ORDER BY
            String limit)

编辑

不过,也有另一种SQLiteDatabase.query这里ORDER BY将是最后一次

Cursor query (String table, 
            String[] columns, 
            String selection, 
            String[] selectionArgs, 
            String groupBy, 
            String having, 
            String orderBy)


在文档中也看起来是一个版本:SQLiteDatabase.query(table,columns,selection,selectionArgs,groupBy,having,orderBy)< - 注意缺少一个字段(限制)

2> Sandip Jadha..:

这对我有用

String filter = MySQLiteHelper.JOB_ID + "=" + Integer.toString(jobID);
String orderBy =  MySQLiteHelper.LOG_TIME + " DESC";
Cursor cursor = database.query(MySQLiteHelper.LOG_TABLE_NAME, logTableColumns,
        filter, null, null, null, orderBy);



3> 小智..:
KEY_PID + " = " + "'" + id + "'"

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有