سؤال

لدي عنوان URL الذي يشير إلى المحتوى وأحتاج إلى الحصول على أعلى قيمة موجودة في أحد الأعمدة. هل هناك أي وظيفة إجمالية تنجز ذلك أو هل يجب علي القيام بذلك يدويا؟

هل كانت مفيدة؟

المحلول

إذا كنت تسليم مزود لمحتوى Android، يجب أن تكون قادرا على تحقيق ذلك عن طريق المرور MAX(COLUMN_NAME) في المعلمة اختيار ContentResolver.query:

getContentResolver().query(uri, projection, "MAX(COLUMN_NAME)", null, sortOrder);

حيث URI هو عنوان مزود المحتوى. يجب أن يؤدي ذلك إلى إرجاع الصف الفردي بأعلى قيمة في column_name.

نصائح أخرى

تستخدم قاعدة بيانات أندرويد SQLite، لذلك SELECT MAX(thecolumn) FROM TheTable يجب أن تعمل، تماما مثل أي تنفيذ SQLite آخر (أو لهذا الأمر أي SQL آخر، "ITE" أم لا ؛-). (إذا كنت لا تستخدم android.database كنت أفضل تحديد ماذا او ما أنت تستخدم بدلا من ذلك ؛-).

هذا العمل بالنسبة لي.

بناء على ردود Reto Meier و Fon Stosch.

public static long getMaxId(Context context) {

    long maxId = 0;

    Cursor maxCursor = context.getContentResolver().query(
            ProviderContentContract.CONTENT_URI,
            new String[]{"MAX(" + Table._ID + ")"},
            null,
            null,
            null);

    if (maxCursor != null && maxCursor.moveToFirst()) {
        maxId = maxCursor.getInt(0);
         maxCursor.close();
    }
    return maxId;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top