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

Flutter SQFLITE如何根据两个字段删除数据条目

基于SQFLITE同时按ID和DATETIME字段删除数据的正确实现

问题场景

原有单条件删除代码(按ID删除):

await _database!.delete(
  "row",
  where: "id = ?",
  whereArgs: [id],
);

尝试同时按ID和DATETIME字段删除时,使用Dart的&&拼接条件字符串导致代码无效:

await _database!.delete(
  "row",
  where: "id = ?" && "DateTime = ?", // 此处写法错误
  whereArgs: [id, day],
);

正确实现方式

SQFLITE的delete方法中,where参数需要传入合法的SQL WHERE子句字符串,应使用SQL的逻辑运算符AND来连接多个条件,而非Dart语言的&&运算符:

await _database!.delete(
  "row",
  where: "id = ? AND DateTime = ?",
  whereArgs: [id, day],
);

说明

  • SQL中用AND表示逻辑与,用来指定需要同时满足的多个条件
  • 之前的错误写法会在Dart层面执行布尔运算,最终生成的where值并非合法的SQL语句,因此无法触发正确的删除逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:24:27