0 follower

Final Class Yiisoft\Db\Mysql\DQLQueryBuilder

InheritanceYiisoft\Db\Mysql\DQLQueryBuilder » Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder

Implements a DQL (Data Query Language) SQL statements for MySQL, MariaDB.

Public Methods

Hide inherited methods

Method Description Defined By
buildLimit() Yiisoft\Db\Mysql\DQLQueryBuilder

Method Details

Hide inherited methods

buildLimit() public method

public buildLimit( \Yiisoft\Db\Expression\ExpressionInterface|integer|null $limit, \Yiisoft\Db\Expression\ExpressionInterface|integer|null $offset ): string
$limit \Yiisoft\Db\Expression\ExpressionInterface|integer|null
$offset \Yiisoft\Db\Expression\ExpressionInterface|integer|null

                public function buildLimit(ExpressionInterface|int|null $limit, ExpressionInterface|int|null $offset): string
{
    if (!empty($offset)) {
        /**
         * Limit isn't optional in MySQL.
         *
         * @link https://stackoverflow.com/a/271650/1106908
         * @link https://dev.mysql.com/doc/refman/5.0/en/select.html#idm47619502796240
         */
        $limit = $limit instanceof ExpressionInterface
            ? $this->buildExpression($limit)
            : $limit ?? '18446744073709551615'; // 2^64-1
        $offset = $offset instanceof ExpressionInterface
            ? $this->buildExpression($offset)
            : (string) $offset;
        return "LIMIT $limit OFFSET $offset";
    }
    if ($limit !== null) {
        $limit = $limit instanceof ExpressionInterface ? $this->buildExpression($limit) : (string) $limit;
        return "LIMIT $limit";
    }
    return '';
}

            
defaultExpressionBuilders() protected method

protected defaultExpressionBuilders( ): array

                protected function defaultExpressionBuilders(): array
{
    return [
        ...parent::defaultExpressionBuilders(),
        JsonOverlaps::class => JsonOverlapsBuilder::class,
        Like::class => LikeBuilder::class,
        NotLike::class => LikeBuilder::class,
        ArrayMerge::class => ArrayMergeBuilder::class,
        Longest::class => LongestBuilder::class,
        Shortest::class => ShortestBuilder::class,
    ];
}