You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Room数据库查询报SQLITE_ERROR:不存在negative列问题求助

解决Room查询SQLITE_ERROR:no such column: negative的问题

嘿,这个问题其实是SQL语法里的小细节踩坑了!让我帮你快速搞定:

问题根源

你当前的查询语句里,把字符串值positive用了反引号(`)包裹:

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

在SQL规则里,反引号是用来转义表名、列名这类标识符的(比如Transaction是SQL关键字,你用反引号包裹它是正确的操作),但字符串字面量必须用单引号(')来包裹。当你用反引号套住positive时,SQLite会误以为这是一个列名,自然找不到对应的列,于是抛出了no such column的错误。

修正后的正确代码

只需要把positive外面的反引号换成单引号就行:

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

额外提醒

如果你的transactionType对应的是Kotlin枚举类型,Room会自动把枚举名称存储为字符串,上面的写法依然适用。另外要确保数据库里transactionType列存储的实际值确实是'positive'(SQLite默认大小写不敏感,但最好和存储值保持一致避免意外)。

内容的提问来源于stack exchange,提问作者hysabone.com

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:24:07