2011-03-02 67 views
1

我有一个sqlitedb,行_id自动增量。我如何形成查询来获得行_id中的最高数字并将其放入变量中?我知道如何在SQL中做到这一点,但不使用查询方法。如何使用查询获取最高行号?

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);       
} 

回答

2

由于在本网站别处回答?在数据库中插入数据时,自动增量会增加主键的ID,并且我认为row_id必须是您的其中一个键。

0
cursor.getLong(cursor.getColumnIndex("row_id")) 

你试试这个:

0

你可以通过计数得到这个,也可以在查询中使用MAX(列名)函数。 max函数返回最大值

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()将光标移动到最后一行。
1
Cursor Days = db.query(true, DATABASE_TABLE, new String[]{"_id"}, 
       "_id="+"(select max(_id) from" +DATABASE_TABLE+")" , null, null, null, null, null); 

这也应该起作用。