我的问题是关于如何获取表的最大id行...我正在使用max函数但是给我一个错误
这是我的代码
public static long getLastIdQuotaAdded(Context context){
long id;
Cursor cursor;
String selection = null;
String[] selectionArgs = null;
selection = "MAX(" + C_ID + ")";
cursor=context.getContentResolver().query(URI, ALL_COLUMNS, selection, selectionArgs, null);
id = cursor.getLong(cursor.getColumnIndex(C_ID));
return id;
}
谢谢你的帮助...... :)。
答案 0 :(得分:3)
sqlite_sequence
中有一个名为SQLITE
的表,用于存储auto_increment_key
。
这是获取最新auto_increment_key
值的查询。
Cursor cursor = db.rawQuery("SELECT seq FROM sqlite_sequence WHERE name=?",
new String[] { TABLE_NAME });
int last = (cursor.moveToFirst() ? cursor.getInt(0) : 0);
答案 1 :(得分:1)
您的查询(即使是可见的部分)也不是有效的SQL。
要获取特定列的最大值,请使用以下内容:
SELECT MAX(_id) FROM mytable;
在SQLite中,如果您的ID是 行ID(请参阅the documentation),您可以这样做:
SELECT last_insert_rowid();
答案 2 :(得分:0)
以下是我获取表格最大ID的解决方案....
public static long getLastIdQuotaAdded(Context context){
Cursor cursor;
String selection = null;
String[] selectionArgs = null;
selection = "SELECT MAX("+C_ID+") FROM sessaoquota";
cursor=context.getContentResolver().query(URI, ALL_COLUMNS, selection, selectionArgs, null);
if(cursor.moveToFirst())
do{
idMax = cursor.getInt((0));
}while(cursor.moveToNext());
return idMax;
}