" SQLite错误:没有这样的列"即使它是一个值

时间:2018-01-14 15:24:27

标签: android sqlite android-room

我正在使用房间数据库来维持我的存在,但是当我尝试进行检索时,数量为#34;我有列#34;键入"保持值为正,它给出以下错误

 [SQLITE_ERROR] SQL error or missing database (no such column: negative)

这是我的ObjectDAO查询:

@Query("SELECT amount FROM `Transaction` WHERE transactionType = `positive`")
int getAmountPositive();

任何帮助都将深表感谢!

1 个答案:

答案 0 :(得分:2)

你应该用'括起字符串文字而不是“`”(反引号):

@Query("SELECT amount FROM `Transaction` WHERE transactionType = 'positive'")

否则将其视为identifier

  

'keyword'单引号中的关键字是字符串文字。

     

“keyword”双引号中的关键字是标识符。

     

[keyword] 方括号中的关键字是标识符。这不是标准的SQL。 MS Access使用此引用机制   和SQL Server一起包含在SQLite中以实现兼容性。

`keyword`     
     

以重音符号(ASCII代码96)括起来的关键字是标识符。这不是标准SQL。这种引用机制是   由MySQL使用并包含在SQLite中以实现兼容性。