where method

  1. @override
QueryBuilder where(
  1. dynamic condition, [
  2. String operator = '=',
  3. dynamic value,
  4. String boolean = 'and',
])
inherited

Implementation

@override
QueryBuilder where(
  dynamic condition, [
  String operator = '=',
  dynamic value,
  String boolean = 'and',
]) {
  if (condition is String) {
    _validateOperator(operator);
    final paramName = _nextParamName();
    bindings[paramName] = value;
    _appendCondition(
      "$condition $operator :$paramName",
      isOr: (boolean.toLowerCase() == 'or'),
    );
  } else if (condition is QueryCallback) {
    QueryBuilderImpl nested = QueryBuilderImpl()
      ..paramCounter = _paramCounter;
    condition(nested);
    _appendCondition(
      "(${nested.toSql()})",
      isOr: (boolean.toLowerCase() == 'or'),
    );
    bindings.addAll(nested.getBindings());
  } else {
    throw InvalidArgumentException(
      'Invalid argument type for condition. Expected either a String or a QueryBuilder instance',
    );
  }
  return this;
}