从SQLite读取数据,其中列名称包含空格

时间:2012-12-24 09:05:54

标签: java android sqlite

我有一个名为“条件名称”的名字(.sql文件已从服务器生成)

但是在android中我从该表中读取数据时会遇到异常。

  

12-24 14:34:00.870:W / System.err(269):   android.database.sqlite.SQLiteException:没有这样的列:condition:,

编译时

  

SELECT条件,类别,子类别,条件名称,本地路径,   remote path,title,content_type FROM library WHERE category =?

它无法识别整个表名并且在空间处断裂。 如果您有任何想法,请帮助我。

4 个答案:

答案 0 :(得分:11)

对于引用表/列名称之类的标识符,SQLite支持与MySQL兼容的返回标记,以及与SQL Server兼容的方括号,但可移植的方法是使用双引号:

SELECT "condition name" FROM library

(单引号将用于字符串值。)

答案 1 :(得分:2)

你把表名放在引号之外,如下所示:

tableName."列名"

而不是

“表名.列名”

答案 2 :(得分:0)

使用单引号

SELECT 'condition name' FROM library

或双引号

SELECT "condition name" FROM library

在某些情况下,表的名称可以包含空格,甚至可以包含憎光性,例如:

SELECT condition's name FROM library

在这种情况下,将表名中的'替换为''

SELECT 'condition''s' name FROM library

答案 3 :(得分:-2)

String someName = "The pig";
String sql = 
"SELECT * FROM " + TABLE + " WHERE " + COL_TITLE + "=" + '"' + someName + '"';