1

我的问题是关于如何获取表的最大 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;
}

谢谢你的帮助... :)

4

3 回答 3

3

有一个名为sqlite_sequencein的表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);
于 2012-09-11T09:03:46.893 回答
2

您的查询(即使是可见的部分)不是有效的 SQL。

要获取特定列的最大值,请使用以下内容:

SELECT MAX(_id) FROM mytable;

在 SQLite 中,如果您的 ID 是Row ID(请参阅文档),您可以这样做:

SELECT last_insert_rowid();
于 2012-09-10T21:02:28.700 回答
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;
}
于 2012-09-11T11:33:25.840 回答