@param        $key
@param        $operator
@param        $value
@param string $joiner

@return $this
320531
public function having($key, $operator, $value, $joiner = 'AND')
    {
        $key = $this->addTablePrefix($key);
        $this->statements['havings'][] = compact('key', 'operator', 'value', 'joiner');
        return $this;
    }
32007
public function orWhere(string $key, string $operator, $value): QueryBuilder
    {
        $this->addWhere($key, $operator, $value, 'OR');
        return $this;
    }
150702
public function where($field, $operator = null, $value = null)
    {
        $this->query->where($field, $operator, $value);

        return $this;
    }
1179727
public function where(string $key, string $operator, $value): QueryBuilder
    {
        $this->addWhere($key, $operator, $value, 'AND');
        return $this;
    }
575950
public function having($column, $operator, $value, string $separator = 'AND')
	{
		$this->havings[] =
		[
			'column'    => $column,
			'operator'  => $operator,
			'value'     => $value,
			'separator' => $separator,
		];

		return $this;
	}
384182
public function where($field, $operator = null, $value = null)
    {
        $this->addWhere($field, $operator, $value);

        return $this;
    }
1268270
public function where($key, $operator = null, $value = null)
    {
        return $this->filter($this->operatorForWhere(...func_get_args()));
    }
836855
public function having($key, $value = true, $operator = '=')
    {
        return $this->addCondition($key, $value, $operator, 'having');
    }
1018508
public function partition($key, $operator = null, $value = null)
    {
        $partitions = [new static, new static];

        $callback = func_num_args() === 1
                ? $this->valueRetriever($key)
                : $this->operatorForWhere(...func_get_args());

        foreach ($this->items as $key => $item) {
            $partitions[(int) ! $callback($item, $key)][$key] = $item;
        }

        return new static($partitions);
    }
925841
public function join($table, $key_one, $operator, $key_two = null)
    {
        if (is_null($key_two)) {
            $key_two = $operator;
            $operator = '=';
        }

        $this->joins .= " JOIN {$table} ON {$key_one} {$operator} {$key_two} ";

        return $this;
    }
1213685
private function addCondition(string $link, $field, $value, string $operator)
    {
        $this->where[] = [
          'link' => $link,
          'field' => $field,
          'operator' => $operator,
          'value' => $value
        ];

        return $this;
    }
78031
public function orWhere($key, $operator, $value)
    {
        $this->where[] = 'OR '.$key.' '.$operator.' '.'?';
        $this->bindings[] = $value;

        return $this;
    }
1210762
public function findAllBy($key, $value, $operator = '=')
    {
        $query = $this->make();
        return $query->where($key, $operator, $value)->get( $this->getParameters );
    }
660719
public function where($column, $operator, $value = null)
    {
        if (is_null($value)) {
            if (is_callable($operator)) {
                $this->where[] = [$column, 'func', $operator];
            } else {
                $this->where[] = [$column, '=', $operator];
            }
        } else {
            $this->where[] = [$column, $operator, $value];
        }

        return $this;
    }
1022602
public function whereJson($key, $operator, $value = null)
    {
        return $this->filter($this->jsonOperator(...func_get_args()));
    }
755627
public static function deleteWhere (string $column, array $operatorValue, string $joinOperator="AND") : bool
	{
		$joinOperator 	= static::validateOperator($joinOperator, "AND");
		$expression 	= static::generateValue($column, $operatorValue, $joinOperator);
		$sqlQuery  		= "DELETE FROM ".static::$tableName." WHERE {$column} {$expression}";
        $dbObject  		= Database::getInstance();
		$dbObject->query($sqlQuery);
		static::$affectedRows = $dbObject->affectedRows();
		return ($dbObject->affectedRows() > 0) ? TRUE : FALSE;
	}
598869
public function orHaving($column, $operator, $value = null)
    {
        $this->hConditions()->orColumn(...func_get_args());

        return $this;
    }