Final Class Yiisoft\Db\Mysql\DQLQueryBuilder
| Inheritance | Yiisoft\Db\Mysql\DQLQueryBuilder » Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder |
|---|
Implements a DQL (Data Query Language) SQL statements for MySQL, MariaDB.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| buildLimit() | Yiisoft\Db\Mysql\DQLQueryBuilder |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| defaultExpressionBuilders() | Yiisoft\Db\Mysql\DQLQueryBuilder |
Method Details
| 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 '';
}
| 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,
];
}
Signup or Login in order to comment.