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

Sqflite查询提示‘no such column’,明明tag字段存在的问题

问题原因

你写的查询语句里,tag = Home中的Home是字符串值,但没有用单引号包裹,SQLite会把它识别为列名,而你的表中并没有名为Home的列,所以抛出no such column: Home的错误。

修复方案

把字符串值用单引号括起来即可:

List results = await db.rawQuery('''SELECT * FROM pomodoro WHERE (tag = 'Home') AND (date BETWEEN ${start.millisecondsSinceEpoch} AND ${end.millisecondsSinceEpoch})''');
更安全的写法(推荐)

直接拼接字符串存在SQL注入风险,建议用参数化查询的方式传递值:

List results = await db.rawQuery(
  '''SELECT * FROM pomodoro WHERE (tag = ?) AND (date BETWEEN ? AND ?)''',
  ['Home', start.millisecondsSinceEpoch, end.millisecondsSinceEpoch]
);

这种写法既避免了语法错误,也提升了代码的安全性。


内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:20:46