我有一个名为“条件名称”的名字(.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 =?
它无法识别整个表名并且在空间处断裂。 如果您有任何想法,请帮助我。
答案 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 + '"';