我有一个使用本地 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/