проверить, существуют ли данные в таблице, или проверить, что таблица пуста - PullRequest
3 голосов
/ 06 августа 2010

друзья, мне нужна помощь в запросе sqlite, чтобы проверить, существуют ли данные в таблице, или проверить, что таблица пуста или нет, давайте запросим ее.

Ответы [ 4 ]

2 голосов
/ 06 августа 2010

уточненный запрос

ВЫБРАТЬ СЧЕТ (*) ИЗ ТАБЛИЦЫ ГДЕ ROWNUM = 1

1 голос
/ 08 августа 2012

Попробуйте это,

public int getTableCount(String tableName) {

    int totalCount= 0;

    Cursor cur = mDb.rawQuery("SELECT COUNT(*) as count FROM " + tableName , null);

    if (cur != null) {
        cur.moveToFirst();
    }

    if (cur.moveToFirst()){
        do{
            totalCount = cur.getInt(cur.getColumnIndex("count"));
        }while(cur.moveToNext());
    }
    cur.close();

    return totalCount;
}

, где "mDb" -> объект SQLiteDatabase

1 голос
/ 06 августа 2010

Также, пожалуйста, прочитайте о DatabaseUtils .

/**
 * checks database if a column has a value in the table
 *
 * @param db
 * @param tableName
 * @param column
 * @param value
 * @param rowid to check against and skip if necessary
 * @return boolean
 */
public static boolean ExistsWithName(SQLiteDatabase db, String tableName, String column,
        String value, Long rowid) {
    String sql = String.format("select 1 from %s where %s = '%s'", tableName, column, value);
    if (rowid != null) {
        sql += " and _id != " + rowid;
    }
    Cursor c = null;
    Boolean ret = false;
    try {
        c = db.rawQuery(sql, null);
        if (c != null) {
            if (c.moveToFirst()) {
                ret = (c.getCount() > 0);
            } else {
                ret = false;
            }
        }
    } catch (Exception e) {
        Log.v(tableName, e.getMessage(), e);
        e.printStackTrace();
    } finally {
        if (c != null)
            c.close();
    }
    return ret;
}
1 голос
/ 06 августа 2010
SELECT COUNT(*) FROM `tableName`;

если результат равен 0, таблица пуста;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...