如何使用查询获得最高行号?

时间:2011-03-02 07:06:55

标签: java android

我有一个sqlite数据库,行ID自动递增。如何形成查询以获取行_id中的最大数字并将其放入变量?我知道如何在sql中执行此操作但不使用查询方法。

5 个答案:

答案 0 :(得分:2)

正如本网站其他地方所述:

String query = "SELECT MAX(row_id) AS max_id FROM mytable";
Cursor cursor = db.rawQuery(query, null);
int id = 0;     
if (cursor.moveToFirst())
{               
  id = cursor.getInt(0);                         
}

答案 1 :(得分:1)

Cursor Days = db.query(true, DATABASE_TABLE, new String[]{"_id"},
                "_id="+"(select max(_id) from" +DATABASE_TABLE+")" , null, null, null, null, null);

这也应该有用。

答案 2 :(得分:0)

cursor.getLong(cursor.getColumnIndex("row_id"))
你尝试过这个吗?当您在数据库中插入数据时,自动增量会增加主键的ID,我认为rowid必须是您的其中一个键。

答案 3 :(得分:0)

您可以通过计数以及在查询中使用MAX(列名称)函数来获取此信息。 max函数返回最大值

答案 4 :(得分:0)

        Cursor newCursor = newContentResolver.query
        (
            CONTENT_URI, 
            new String[]{"_id"}, 
            null, 
            null, 
            null
        );

        if(newCursor.moveToLast()) 
        {
            int index = newCursor.getColumnIndex("_id");
            String id = newCursor.getString(index);     
            Log.v("TAG", "Highest id : "+id);       
        }
  • 这是获取最高行ID的一种方法。由于生成是自动递增的,因此我们可以确保最后一行是数据库中的最高行。 moveToLast()将光标移动到最后一行。