count method
Returns the number of rows matching the current WHERE conditions.
ORDER BY, LIMIT, and OFFSET are ignored.
Implementation
Future<int> count() async {
final params = <String, dynamic>{};
var sql = 'SELECT COUNT(*) AS _count FROM ${_q(_table)}';
if (_conditions.isNotEmpty) {
sql += ' WHERE ${_buildWhere(params)}';
}
final result = await _db.rawQuery(
sql,
values: params.isEmpty ? null : params,
);
final val =
result.first?['_count'] ??
result.first?['count(*)'] ??
result.first?['COUNT(*)'];
return switch (val) {
int v => v,
_ => int.tryParse('$val') ?? 0,
};
}