rawQuery查询注意事项

问题描述:

rawQuery查询如果你要查询的表的主键字段名不是"_id",则会报IllegalArgumentException错误:

03-11 22:02:39.876: E/AndroidRuntime(2130): Caused by: java.lang.IllegalArgumentException: column ‘_id‘ does not exist,
03-11 22:02:39.876: E/AndroidRuntime(2130): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)

解决办法:

方法一:修改表结构,将主键字段名修改为"_id"(不推荐,因为牵连修改太多)

方法二:给主键字段取别名,例如:

    cursor = db.rawQuery("select u_id as _id ,u_name,sex,amount from t_user", null);

时间: 2024-08-08 08:25:56

rawQuery查询注意事项的相关文章

hive的查询注意事项以及优化总结 .

一.控制Hive中Map和reduce的数量 Hive中的sql查询会生成执行计划,执行计划以MapReduce的方式执行,那么结合数据和集群的大小,map和reduce的数量就会影响到sql执行的效率. 除了要控制Hive生成的Job的数量,也要控制map和reduce的数量. 1. map的数量,通常情况下和split的大小有关系,之前写的一篇blog“map和reduce的数量是如何定义的”有描述. hive中默认的hive.input.format是org.apache.hadoop.h

cognos 10.2.2 report studio数字---字符型查询注意事项

做了一个简单的报表,就是按照员工编号查询员工,其中员工编号是全数字,我们保存在数据库中的是字符型varchar2(10),所以在report studio中做查询就一直报告服务器错误. 其中使用cast 转换数据类型,无效 最终,是在查询中修改过滤器为"自动聚合之后"实现

LINQ to Entities 查询注意事项

1> 排序信息丢失 如果在排序操作之后执行了任何其他操作,则不能保证这些附加操作中会保留排序结果.这些操作包括 Select 和 Where 等.另外,采用表达式作为输入参数的 First 和 FirstOrDefault 方法不保留顺序.如下代码:并不能达到反序排序的效果 using (var edm = new NorthwindEntities()) { IQueryable<Customers> cc = edm.Customers.OrderByDescending(c =&g

ACCESS模糊查询注意事项

ACCESS模糊查询出现的问题,开发中需要注意!在SQL Server中模糊查询通常是这样的Select * from articleTable where authorName like '%jacky%'但是在Access中用这条语句执行的时候竟然发现查不出结果,怎么可能呢? 后来查了下资料,发现问题如下:要进行模糊查找,则必须使用通配符,ACCESS库的通配符和SQL SERVER的通配符不一样. ACCESS库的通配符为:*  与任何个数的字符匹配.?  与任何单个字母的字符匹配在SQL

ORACLE 多表连接与子查询

Oracle表连接 SQL/Oracle使用表连接从多个表中查询数据 语法格式: select 字段列表from table1,table2where table1.column1=table2.column2; 说明: 在where子句中指定连接条件 当被连接的多个表中存在同名字段时,必须在该字段前加上"表名"作为前缀. 连接的类型 Oracle8i之前的表连接: 等值连接(Equijoin) 非等值连接(Non-Equijoin) 外连接(Outer join):-->左外连

SQL 基础之子查询(十一)

子查询:类型.语法.和注意事项 使用子查询能解决哪些问题? 子查询语法: select select_list from table where expr operator (select select_list from table); 子查询(内查询)在主查询(外查询)之前执行. 主查询使用子查询结果. 位置:select,where,from,having 1.查询谁的工资比Abel高 select last_name, salary from employees where salary

Oracle03--子查询

1. 子查询 子查询也称之为嵌套子句查询. 1.1. 语法 语法上的运行使用规则: l 子查询 (内查询.嵌套子句) 在主查询之前一次执行完成.(子查询先执行) l 子查询的结果被主查询使用 (外查询). l 子查询要包含在括号内. l 将子查询放在比较条件的右侧. 1.2. 为什么要使用子查询? [需求]谁的工资比scott高? 采用连接的方式写(这里是自连接,见下图): --[需求]谁的工资比scott高? --多表关联查询:自连接的不等值连接 SELECT * FROM emp t1,em

java MySQL数据库编程 第四章 高级查询(二)

第四章 高级查询(二) (1)通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查.子查询可以出现在表达式出现的如何位置 (2)子查询语句可以嵌套在SQL语句中任何表达式出现的位置. 一.EXISTS子查询 1.使用EXISTS语句判断该数据库对象是否存在: DROP TABLE IF EXISTS temp; 2. EXISTS作为WHERE语句的子查询: SELECT .....FROM 表名 WHERE EXISTS(子查询); 3. EXISTS关键字后面的参数是一个任

MySQL数据库 高级查询(二)

高级查询(二)  EXISTS 子查询 语法: SELECT ..... FROM  表名 WHERE EXISTS (子查询); EXISTS 关键字后面的参数是一个任意的子查询,如果该子查询有返回值,则EXISTS 子查询的结果为true,此时再执行外层查询语句.如果没有返回行,则EXISTS 子查询 的结果为false,此时外层语句不再执行查询.  NOT EXISTS 子查询 EXISTS 子查询和NOT EXISTS 子查询的结果只取决于是否有返回记录,不取决于这些记录的内容,所以EX