获取查询结果集中的列名或列数?

时间:2015-01-30 07:57:21

标签: android sqlite select join

  1. SQL:

    select a.a, a.b, b.c from a, b where a.a=b.a;
    
  2. SQL:

    select '*' from table;
    
  3. SQL:

    select '*' from table1, table2 where table1.a=table2.a;
    
  4. SQL:

    select '*' from table1 left join table2 on table1.a=table2.a;
    
  5. 案例1知道sql(OK)结果集中的列名。 情况2可以找到列名(用于pragma table_info (table);)(确定)。 但是案例3,4是如何获得结果集中列数的列名?

2 个答案:

答案 0 :(得分:1)

您可以像这样遍历返回的Cursor

 for (int i = 0; i < cursor.getColumnCount(); i++) {
      Log.d("tag", cursor.getColumnName(i) + " -> " + cursor.getType(i));
 }

请注意,cursor.getType()将是以下之一:

static final int FIELD_TYPE_NULL = 0;
static final int FIELD_TYPE_INTEGER = 1;
static final int FIELD_TYPE_FLOAT = 2;
static final int FIELD_TYPE_STRING = 3;
static final int FIELD_TYPE_BLOB = 4;

答案 1 :(得分:0)

查询返回Cursor,您可以获取光标列名称,例如getColumnName()