public function exists()
    {
        if (!$this->name) {
            throw new UnexpectedValueException(
                'Cannot check for existing user without a name'
            );
        }

        if (!$this->host) {
            throw new UnexpectedValueException(
                'Cannot check for existing user without a host because the result could be ambiguous'
            );
        }

        $row = $this->client->getSingleResult(
            'SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = :user AND host = :host)',
            array(
                ':user' => $this->name,
                ':host' => strtolower($this->host) == 'any' ? '%' : $this->host
            )
        );

        return (bool) $row[0];
    }