system/Database/BaseBuilder.php
protected function _whereIn(string $key = null, array $values = null, bool $not = false, string $type = 'AND ', bool $escape = null)
	{
		if ($key === null || $values === null)
		{
			return $this;
		}

		is_bool($escape) || $escape = $this->db->protectIdentifiers;

		$ok = $key;

		if ($escape === true)
		{
			$key = $this->db->protectIdentifiers($key);
		}

		$not = ($not) ? ' NOT' : '';

		$where_in = array_values($values);
		$ok       = $this->setBind($ok, $where_in, $escape);

		$prefix = empty($this->QBWhere) ? $this->groupGetType('') : $this->groupGetType($type);

		$where_in = [
			'condition' => $prefix . $key . $not . " IN :{$ok}:",
			'escape'    => false,
		];

		$this->QBWhere[] = $where_in;

		return $this;
	}
protected function _whereIn(string $key = null, array $values = null, bool $not = false, string $type = 'AND ', bool $escape = null)
	{
		if ($key === null || $values === null)
		{
			return $this;
		}

		is_bool($escape) || $escape = $this->db->protectIdentifiers;

		$ok = $key;

		if ($escape === true)
		{
			$key = $this->db->protectIdentifiers($key);
		}

		$not = ($not) ? ' NOT' : '';

		$where_in = array_values($values);
		$ok       = $this->setBind($ok, $where_in, $escape);

		$prefix = empty($this->QBWhere) ? $this->groupGetType('') : $this->groupGetType($type);

		$where_in = [
			'condition' => $prefix . $key . $not . " IN :{$ok}:",
			'escape'    => false,
		];

		$this->QBWhere[] = $where_in;

		return $this;
	}
Internal WHERE IN

@used-by WhereIn()
@used-by orWhereIn()
@used-by whereNotIn()
@used-by orWhereNotIn()

@param string  $key    The field to search
@param array   $values The values searched on
@param boolean $not    If the statement would be IN or NOT IN
@param string  $type
@param boolean $escape

@return BaseBuilder