Class Yiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder
| Inheritance | Yiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder |
|---|---|
| Implements | Yiisoft\Db\Expression\ExpressionBuilderInterface |
Build objects of {@see Equals}, {@see NotEquals}, {@see GreaterThan}, {@see GreaterThanOrEqual}, {@see LessThan}, or {@see LessThanOrEqual} into SQL expressions.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder | |
| build() | Build SQL for comparison conditions. | Yiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder |
Method Details
| public mixed __construct ( Yiisoft\Db\QueryBuilder\QueryBuilderInterface $queryBuilder ) | ||
| $queryBuilder | Yiisoft\Db\QueryBuilder\QueryBuilderInterface | |
public function __construct(
private readonly QueryBuilderInterface $queryBuilder,
) {}
Build SQL for comparison conditions.
public function build(ExpressionInterface $expression, array &$params = []): string
{
$column = $this->prepareColumn($expression->column, $params);
$value = $this->prepareValue($expression->value, $params);
$operator = $this->getOperator($expression);
if ($value === null) {
return match ($operator) {
'=' => "$column IS NULL",
'<>' => "$column IS NOT NULL",
default => "$column $operator NULL",
};
}
return "$column $operator $value";
}
Signup or Login in order to comment.