我必须知道在uidCol
中aaa
列为tagtable
的地方存在特定的行。但是我不知道,所以我只是使用try~catch
块。
我要做的是检查本地数据库,如果没有数据,则从firestore中获取。
我在做什么就像下面
try {
await db.rawQuery('SELECT * FROM tagTable WHERE uidCol="aaa"');
} catch(exception){
await _fetchTagsFromFirestore().catchError((e){
print('FATAL ERROR: ${e.toString()}');
return FETCH_RESULT.FAILURE;
});
}
但是我认为检查行是否存在是不正确的方法。我该如何正确处理?
答案 0 :(得分:0)
我假设您要检查数据库中是否存在具有指定条件的记录,如果存在,则执行某些操作。
从数据库中获取结果并将其存储在queryResult中:
var queryResult = await db.rawQuery('SELECT * FROM tagTable WHERE uidCol="aaa"');
检查结果是否为空:
result.isNotEmpty ? //do something if the result is not empty here
: []; //else return empty list
答案 1 :(得分:0)
尝试一下对我有用的
var db= DatabaseHelper();
Future<int> getcount(id) async {
var dbclient = await db;
int count = Sqflite.firstIntValue(
await dbclient.rawQuery("SELECT COUNT(*) FROM $cartTable WHERE $columnid=$id"));
return count;
}
答案 2 :(得分:0)
您可以使用 EXISTS
Future<bool> uidExists() async {
var result = await _database.rawQuery(
'SELECT EXISTS(SELECT 1 FROM tagTable WHERE uidCol="aaa")',
);
int exists = Sqflite.firstIntValue(result);
return exists == 1;
}