java - Android 上 SQLite 查询的语法错误

标签 java android sqlite

我尝试使用以下选择对 android sqlite 数据库进行查询,但当我将其放入 eclipse 中时,它仅显示错误。

stmt = "SELECT * FROM user_zones JOIN pos WHERE user_zones.zone_id = (
                CASE  
                 WHEN user_zones.type_zone_id = 'Zone' THEN pos.zone_id
                 WHEN user_zones.type_zone_id = 'Area' THEN pos.area_id
                 WHEN user_zones.type_zone_id = 'Town' THEN pos.town_id
                 WHEN user_zones.type_zone_id = 'MicroZone' THEN pos.microzone_id END) AND user_zones.user_id = '"+id_user+"'";

有谁知道上面的语法有什么问题吗?谢谢

编辑:我什至无法运行代码,有语法错误!

错误:找不到符号类 CASE

unclosed character literal
cannot find symbol class 'THEN'

expected ';' ....and so on

最佳答案

如果这确实是您粘贴到 Java 源代码中的内容,那么您的问题是 Java 中的字符串文字不能跨越多行。您必须为每一行使用单独的字符串文字将其拆分,并使用 + 运算符将它们全部粘合在一起。像这样。

stmt = "SELECT * FROM user_zones JOIN pos WHERE user_zones.zone_id = (" +
       "        CASE" +
       ...

参见Paste a multi-line Java String in Eclipse

关于java - Android 上 SQLite 查询的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034902/

相关文章:

java - 如何通过多级继承调用错误的override方法?

java - Android - 第二次加载文件时出现java.lang.NullPointerException

android - 类似径向菜单的布局

java - Hadoop 可写 readFields EOFException

java - 返回动态确定的子类对象的方法

android - 如何为包含选项卡 Activity 的 TabActivity 设置结果()

java - 尝试在空对象引用上调用虚拟方法 'void android.app.ActionBar.setHomeButtonEnabled(boolean)'

c# - Entity Framework 代码优先 : Using a database that doesn't need to be separately installed?

sql - 使用sql更改以 'C'字母开头的列名?

SQLite3、FTS3 和停用词