Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 检查SQFLITE数据库中存在PK列表中的哪些PK_Flutter_Dart - Fatal编程技术网

Flutter 检查SQFLITE数据库中存在PK列表中的哪些PK

Flutter 检查SQFLITE数据库中存在PK列表中的哪些PK,flutter,dart,Flutter,Dart,对于长度为k的PK列表: listPK=[1,2,3…k] 我目前正在运行for循环,并查询数据库k次,以检查该项是否存在于数据库中 List<bool> isPresent(List listPK)async{ final db = await database; List<bool> output = List.filled(listPK.length, false) for (var i = 0; i<listPk.length; i++){

对于长度为k的PK列表:

listPK=[1,2,3…k]

我目前正在运行for循环,并查询数据库k次,以检查该项是否存在于数据库中

List<bool> isPresent(List listPK)async{
  final db = await database;
  List<bool> output = List.filled(listPK.length, false)
  for (var i = 0; i<listPk.length; i++){
    List<Map> result = await db.query('elements', where: "id = ?", whereArgs: listPk[i]);
    if (result[0] != null) {output[i] = true}
  }
} 

List-isPresent(List-listPK)异步{
最终数据库=等待数据库;
列表输出=List.filled(listPK.length,false)

对于(var i=0;i一次查询数据库并获取'elements'表中的所有id会更高效。一旦您拥有'elements'表中的所有id,您就可以遍历并找到哪些id存在,哪些不存在。

一次查询数据库并获取'elements'表中的所有id会更高效。O一旦“元素”表中有了所有id,您就可以反复查看并找到哪些id存在,哪些不存在。

使用
WHERE…in
检查一次调用中的所有id

String listQuery=listPK.join(',');/“1,2,3,…,k”
字符串查询='SELECT*FROM table_name WHERE id IN($listQuery);`;
列表结果=wait db.rawQuery(查询);

使用
中的WHERE…
检查一次呼叫中的所有ID

String listQuery=listPK.join(',');/“1,2,3,…,k”
字符串查询='SELECT*FROM table_name WHERE id IN($listQuery);`;
列表结果=wait db.rawQuery(查询);

提高效率的唯一方法是,如果数据库很小而
k
很大,则效率更高。唯一提高效率的方法是,如果数据库很小而
k
很大。