select语句中的Android SQLite“0 _id”

时间:2014-01-05 11:00:00

标签: android sqlite

我正在使用jgilfelt的SQLite-asset-helper

我尝试调查他的示例项目并遇到了这段代码:

    public Cursor getEmployees() {

    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    String [] sqlSelect = {"0 _id", "FirstName", "LastName"}; 
    String sqlTables = "Employees";

    qb.setTables(sqlTables);
    Cursor c = qb.query(db, sqlSelect, null, null,
            null, null, null);

    c.moveToFirst();
    return c;

}

_ID字段的select语句中“0”的含义是什么?

2 个答案:

答案 0 :(得分:2)

它返回0的值,列名为_id(它使用列名别名)。

您可以通过这种方式返回表中不存在的列。

答案 1 :(得分:1)

某些Android适配器要求您始终选择_id字段,即使您的表没有。尝试一下,您的应用程序将崩溃而不选择_id。因此,他们通过选择其中包含0的mock _id值来为此做一个解决方法。

编辑:更好的方法是,例如,如果您想在表格中使用“id”代替“_id”,只需执行SELECT id as _id FROM ...