count method

Future<int> count()

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,
  };
}