示例#1
0
 /**
  * Compare in the following style in the where condition:
  * $column NOT BETWEEN $firstCompareValue AND $secondCompareValue
  * When the type argument isset to 'column', the second argument will interpreted as column.
  * Otherwise it is like a string or value comparison.
  *
  * @param string      $column             The column name which should compare.
  * @param string      $firstCompareValue  The first value for the comparison.
  * @param string      $secondCompareValue The second value for the comparison.
  * @param string|null $type               (Optional) Set to 'column' for a comparison with two columns.
  *
  * @return $this The same instance to concatenate methods.
  */
 public function notBetween($column, $firstCompareValue, $secondCompareValue, $type = null)
 {
     /** @var ColumnInterface $columnObj */
     /** @var WhereNumericCompareInterface $firstCompareObj */
     /** @var WhereNumericCompareInterface $secondCompareObj */
     $columnObj = $this->factory->references('Column', $column);
     if ($type === 'column') {
         $firstCompareObj = $this->factory->references('Column', $firstCompareValue);
         $secondCompareObj = $this->factory->references('Column', $secondCompareValue);
     } else {
         $firstCompareObj = $this->factory->references('Value', $firstCompareValue);
         $secondCompareObj = $this->factory->references('Value', $secondCompareValue);
     }
     $this->condition->notBetween($columnObj, $firstCompareObj, $secondCompareObj);
     return $this;
 }