2 momo1199 Momo1199 于 2013.04.25 15:29 提问

Android SQLite查询报错

在运行查询语句时,报错语法错误:

inal Cursor c = getContentResolver().query(
Provider.GAME_URI, new String[]{"CASE WHEN " +DBHelper.COLUMN_CRE_USER + " = " + preferences.getInt(LoginScreen.ID, 0) + " THEN (" + DBHelper.COLUMN_CRE_PTS + " AS you AND " + DBHelper.COLUMN_CON_PTS + " AS them) ELSE (" + DBHelper.COLUMN_CON_PTS + " AS you AND " + DBHelper.COLUMN_CRE_PTS + " AS them)"},"turn = ?",
new String[] { preferences.getInt(LoginScreen.ID, 0) + ""}, null);

报的错:

04-24 19:57:48.345: E/AndroidRuntime(18775): Caused by: android.database.sqlite.SQLiteException: near "AS": syntax error (code 1): , while compiling: SELECT CASE WHEN createduser = 112 THEN (createdplayerpts AS you AND connectedplayerpts AS them) ELSE (connectedplayerpts AS you AND createdplayerpts AS them) FROM game WHERE (turn = ?)

2个回答

baimy1985
baimy1985   2013.04.25 19:28
已采纳

类似这种SQL语法错误可以把你的语句先放到sql工具中执行下,首先确保sql语句本身没错,再检查你的代码有没有笔误,类似缺少逗号,括号不匹配这些。

Kakalapa1986
Kakalapa1986   2013.04.25 16:17
SELECT 
    CASE WHEN createduser = 112 THEN createdplayerpts ELSE connectedplayerpts END AS you,
    CASE WHEN createduser = 112 THEN connectedplayerpts ELSE createdplayerpts END AS them
FROM 
    game WHERE (turn = ?)
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android内置数据库sqlite执行insert,单引号报错问题的解决
Android内置数据库sqlite执行insert,单引号报错问题的解决 转载请注明出处,谢谢~http://www.cnblogs.com/iOcean/archive/2012/03/02/2377648.html   1.问题描述     1 2 3 SQLiteDatabase mDB = this.getWri
android sqlite事务处理批量sql语句
应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。 而且不能保证所有数据都能同时插入。(有可能部分插入成功,另外一部分失败,后续还得删除。太麻烦) 解决方法: 添加事务处理,把
sqlite的rawQuery和query的一个问题总结
自己先建立一个空表,继而用以下方法得到表中数据的个数
Android 查询Sqlite表中的数据时,表中必须得有_id字段,否则报错
1.情况:使用外部自建表 .db 文件(自建的表,没有_id 字段),通过raw 加载/拷贝到内部存储中去。当我想去与 SimpleCursorAdapter进行关联使用的时候,即进行对库的表查询,返回Cursor结果,将结果通过Adapter.swapCursor()去置换数据源显示。会报错05-18 15:59:20.220: E/AndroidRuntime(2601): java.lang.
Sqlite在查询含中文字符的条目的查不到结果
最近两天碰到一个比较无语的问题: Sqlite在查询含中文字符的条目的适合死活查不到结果,于是到网上查了下解决方案: 1、说是编码问题Android是utf-8的,于是试着转换传入字符编码和取出字符编码。结果还是不行 2、可能语法错误,于是调整各种实现方式,结果还是不行 比如:`String sql = "select * from ? where taskName l
android中sqlite查询
查询数据库:  两种方式--  第一种方式:类似INSERT UPDATE DELETE,有两种方法使用select 从SQLite数据库检索数据。  使用rawQuery()直接调用select 语句,使用query() 方法构建一个查询。  小贴士:  * onCreate(); 该方法在数据库第一次创建的时候调用,只调用一次;  * onUpgrade(); 该方法在数据库版
Android SQLite Cursor读取空表出错
在开发一个安卓应用,需要读取
Android---Sqlite数据库---数据库查询两种方式(事务)
# 1 Android下数据库创建       mysql  sqlserver2005 oracle   sqlite : 轻量级,内置式      数据库一般用于存储,大量具有结构相同的数据。 创建数据库的流程:(SqliteOpenHelper:)      1.创建一个帮助类,继承SqliteOpenHelper           public class MyHelp
android studio使用SQLite时错误
1、现象: 手机上调测时报错:android.database.sqlite.SQLiteException: near "$change": syntax error (code 1): 在使用SQLite动态创建表时报错,多了一个$change字段。 于是反复读代码,发现应该不会有$change这个字段。表字段是通过注解方式实现,getDeclareFields方式获取的字段。 2、经
Android自带SQLite数据库查询语句query的用法
金证职考 2017-02-26 19:39 今天在调试APP的时候,用到了SQLite的query 查询语句,去年编码时间紧没认真琢磨query的用法,当时用到query时为了省事省时直接用下面的: Cursor cursor = db.query(tableName,null,null,null,null,null,null); 好在系统小功能简单数据量小,系统和数据占内存少没有明显的影响