android - 使用 ORDER BY 时出现数据类型不匹配错误

标签 android sqlite

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

private SQLiteDatabase mDb;

当我运行此查询时,我会根据需要在 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");

有什么想法吗?

最佳答案

看起来你有点搞混了。根据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)

关于android - 使用 ORDER BY 时出现数据类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/818677/

相关文章:

android - MPAndroidChart:LineChart 填充不会在 XAxis 处停止

python - 备份 SQLITE3 数据库的最佳方法,以减少备份文件的大小

database - 嵌入式系统上的 Sqlite

安卓 Eclipse : Class File Editor - Source not found

java - NotifyDatasetchanged 不起作用。单击按钮后应用程序崩溃

Android Wear 表盘在屏幕关闭时振动

android - 使用 Espresso 单击主页图标

c# - SQLITE 内连接 Windows Phone 8

python - sqlite3.操作错误: unrecognized token: "{"

android - 如何在Android ListView 中从sqlite中删除行