Final Class Yiisoft\Db\Mysql\Builder\JsonOverlapsBuilder
| Inheritance | Yiisoft\Db\Mysql\Builder\JsonOverlapsBuilder |
|---|---|
| Implements | Yiisoft\Db\Expression\ExpressionBuilderInterface |
Builds expressions for JsonOverlaps for MySQL Server.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\Db\Mysql\Builder\JsonOverlapsBuilder | |
| build() | Build SQL for JsonOverlaps. | Yiisoft\Db\Mysql\Builder\JsonOverlapsBuilder |
Method Details
| public __construct( \Yiisoft\Db\QueryBuilder\QueryBuilderInterface $queryBuilder ): mixed | ||
| $queryBuilder | \Yiisoft\Db\QueryBuilder\QueryBuilderInterface | |
public function __construct(
private readonly QueryBuilderInterface $queryBuilder,
) {}
Build SQL for JsonOverlaps.
| public build( \Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps $expression, array &$params = [] ): string | ||
| $expression | \Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps |
The \Yiisoft\Db\QueryBuilder\Condition\JsonOverlaps to be built. |
| $params | array | |
| throws | \Yiisoft\Db\Exception\Exception | |
|---|---|---|
| throws | InvalidArgumentException | |
| throws | \Yiisoft\Db\Exception\InvalidConfigException | |
| throws | \Yiisoft\Db\Exception\NotSupportedException | |
public function build(ExpressionInterface $expression, array &$params = []): string
{
$column = $expression->column instanceof ExpressionInterface
? $this->queryBuilder->buildExpression($expression->column)
: $this->queryBuilder->getQuoter()->quoteColumnName($expression->column);
$values = $expression->values;
if (!$values instanceof ExpressionInterface) {
$values = new JsonValue($values);
}
$values = $this->queryBuilder->buildExpression($values, $params);
return "JSON_OVERLAPS($column, $values)";
}
Signup or Login in order to comment.