data type mismatch error when using ORDER BY

后端 未结 5 2016
天涯浪人
天涯浪人 2021-02-05 02:19

I\'ve got an android app using a local sqlite database.

private SQLiteDatabase mDb;

when I run this query I get my Cursor over rows with pid eq

相关标签:
5条回答
  • 2021-02-05 02:28
    KEY_PID + " = " + "'" + id + "'"
    
    0 讨论(0)
  • 2021-02-05 02:40

    This worked for me

    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);
    
    0 讨论(0)
  • 2021-02-05 02:47

    It looks like you got just a little mixed up. According to the SQLiteDatabase.query documentation, the last argument is the LIMIT clause. The second to last is the ORDER BY clause.

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

    EDIT

    But, there is also another SQLiteDatabase.query where ORDER BY would be last

    Cursor query (String table, 
                String[] columns, 
                String selection, 
                String[] selectionArgs, 
                String groupBy, 
                String having, 
                String orderBy)
    
    0 讨论(0)
  • 2021-02-05 02:50

    Since Orderby is the second last parameter in the query; your query would be like this

    mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, 
        KEY_PID+" = "+id, null, null, null, KEY_PID+" DESC", null);
    
    0 讨论(0)
  • 2021-02-05 02:53

    If I correctly understood your problem, try this.

        String[] columns = new String[] {KEY_PID, KEY_TID};
        String where = KEY_PID + " = " + Integer.toString(id);
        String orderBy = KEY_PID + " DESC";
    
        Cursor cursor = mDb.query(PT_TABLE, columns, where, null, null, null, orderBy);
    
    0 讨论(0)
提交回复
热议问题