Example #1
0
 public static function make($name, $alias = null, $queryHandler = null, $isSubQueryField = false)
 {
     $field = new FieldInfo();
     if ($name instanceof FieldFunction) {
         $field->func = $name;
         $field->field = $name->field;
     } else {
         $field->name = trim($name);
     }
     $field->alias = isset($alias) ? trim($alias) : null;
     $field->queryHandler = $queryHandler;
     $field->isSubQueryField = $isSubQueryField;
     $field->parseName();
     return $field;
 }
 public static function makeNotBetween($field, $range, $isSubQuery = false)
 {
     $condition = new WhereBetweenConditionBuilder();
     $condition->field = FieldInfo::make($field, null, null, $isSubQuery);
     $condition->range = $range;
     $condition->notBetween = true;
     return $condition;
 }
 public static function makeClause($field, $clause, $notIn = false, $isSubQuery = false)
 {
     $condition = new WhereInConditionBuilder();
     $condition->field = FieldInfo::make($field, null, null, $isSubQuery);
     $condition->clause = $clause;
     $condition->notIn = $notIn;
     return $condition;
 }
 public static function makeNormal($field, $operator, $value, $isSubQuery = false)
 {
     $builder = new WhereConditionBuilder();
     $builder->field = FieldInfo::make($field, null, null, $isSubQuery);
     $builder->operator = $operator;
     $builder->value = $value;
     return $builder;
 }
 public function getString(QueryContext $context)
 {
     if ("*" !== $this->field) {
         $field = FieldInfo::make($this->field);
         return "COUNT(" . $field->getName($context) . ")";
     }
     return "COUNT(*)";
 }
Example #6
0
 public function select()
 {
     $this->queryType = self::QUERY_SELECT;
     $fields = array();
     if (func_num_args() > 0) {
         foreach (func_get_args() as $item) {
             if (is_string($item)) {
                 $fields[] = FieldInfo::make($item);
             }
         }
     }
     if (1 === func_num_args()) {
         $params = func_get_arg(0);
         if (isset($params) && is_array($params)) {
             $fields = array();
             foreach ($params as $key => $value) {
                 if (!is_string($key)) {
                     $fields[] = FieldInfo::make($value);
                 } else {
                     if (is_callable($value)) {
                         $fields[] = FieldInfo::make($key, $key, $value);
                     } else {
                         $fields[] = FieldInfo::makeValueColumn($key, $value);
                     }
                 }
             }
         }
     }
     $this->selectFields = $fields;
     return $this;
 }
Example #7
0
 public function count()
 {
     $this->selectFields = array(FieldInfo::make(Func::count("*"), 'total_count'));
     return $this;
 }