max*_*ax 3 dart flutter sqflite
我有以下查询从员工表中选择,其中名称为“max”,ID 不在 123 和 444 中。不在 ID 中的将来可以增长。但我收到错误
错误
(8023): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常: DatabaseException(near "?": syntax error (code 1 SQLITE_ERROR): ,编译时:
询问
List<String> a = [];
a.add("123");
a.add("444");
var table = await mydb.rawQuery(
"SELECT value from employee WHERE employeename = ? AND id NOT IN ? ORDER BY timestamp DESC",
["max", a]);
Run Code Online (Sandbox Code Playgroud)
如果LIST是不可预测的,一种方法是您可以使用它JOIN来创建具有所需值的 select 语句NOT IN。下面是一个示例。
void main() {
List<String> a = [];
a.add("123");
a.add("444");
var select =
'SELECT value from employee WHERE employeename = ? AND id NOT IN (\'' +
(a.join('\',\'')).toString() +
'\') ORDER BY timestamp DESC';
var table = await mydb.rawQuery(select, ["max"]);
}
Run Code Online (Sandbox Code Playgroud)
如果你打印变量 select 你会得到
SELECT value from employee WHERE employeename = ? AND id NOT IN ('123','444')
ORDER BY timestamp DESC.
Run Code Online (Sandbox Code Playgroud)
然后你可以将上面的语句传递给rawquery并得到你的结果。
PS:相应地使用您的单引号和双引号。
| 归档时间: |
|
| 查看次数: |
619 次 |
| 最近记录: |