当前位置: 首页>>代码示例>>PHP>>正文


PHP QueryBuilder::having方法代码示例

本文整理汇总了PHP中Doctrine\DBAL\Query\QueryBuilder::having方法的典型用法代码示例。如果您正苦于以下问题:PHP QueryBuilder::having方法的具体用法?PHP QueryBuilder::having怎么用?PHP QueryBuilder::having使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Doctrine\DBAL\Query\QueryBuilder的用法示例。


在下文中一共展示了QueryBuilder::having方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: finalizeQuery

 public function finalizeQuery(\Doctrine\DBAL\Query\QueryBuilder $query)
 {
     $paramcount = 0;
     if (!empty($this->gIDs)) {
         $validgids = array();
         foreach ($this->gIDs as $gID) {
             if ($gID > 0) {
                 $validgids[] = $gID;
             }
         }
         if (!empty($validgids)) {
             $query->innerJoin('p', 'VividStoreProductGroups', 'g', 'p.pID = g.pID and g.gID in (' . implode(',', $validgids) . ')');
             if (!$this->groupMatchAny) {
                 $query->having('count(g.gID) = ' . count($validgids));
             }
         }
     }
     switch ($this->sortBy) {
         case "alpha":
             $query->orderBy('pName', 'ASC');
             break;
         case "date":
             $query->orderBy('pDateAdded', 'DESC');
             break;
         case "popular":
             $pr = new StoreProductReport();
             $pr->sortByPopularity();
             $products = $pr->getProducts();
             $pIDs = array();
             foreach ($products as $product) {
                 $pIDs[] = $product['pID'];
             }
             foreach ($pIDs as $pID) {
                 $query->addOrderBy("pID = ?", 'DESC')->setParameter($paramcount++, $pID);
             }
             break;
     }
     switch ($this->featured) {
         case "featured":
             $query->andWhere("pFeatured = 1");
             break;
         case "nonfeatured":
             $query->andWhere("pFeatured = 0");
             break;
     }
     if (!$this->showOutOfStock) {
         $query->andWhere("pQty > 0 OR pQtyUnlim = 1");
     }
     if ($this->activeOnly) {
         $query->andWhere("pActive = 1");
     }
     if (is_array($this->cIDs) && !empty($this->cIDs)) {
         $query->innerJoin('p', 'VividStoreProductLocations', 'l', 'p.pID = l.pID and l.cID in (' . implode(',', $this->cIDs) . ')');
     }
     $query->groupBy('p.pID');
     if ($this->search) {
         $query->andWhere('pName like ?')->setParameter($paramcount++, '%' . $this->search . '%');
     }
     return $query;
 }
开发者ID:pvernaglia,项目名称:vivid_store,代码行数:60,代码来源:ProductList.php

示例2: havingDelegatesToConcreteQueryBuilder

 /**
  * @test
  */
 public function havingDelegatesToConcreteQueryBuilder()
 {
     $this->concreteQueryBuilder->having('uid=1', 'type=9')->shouldBeCalled()->willReturn($this->subject);
     $this->subject->having('uid=1', 'type=9');
 }
开发者ID:dachcom-digital,项目名称:TYPO3.CMS,代码行数:8,代码来源:QueryBuilderTest.php

示例3: modifyCountQuery

 /**
  * Modify the query to count occurences of a value in a column
  *
  * @param  QueryBuilder $table        without prefix
  * @param  string       $uniqueColumn name
  * @param  array        $options      for special behavior
  * @param  string       $tablePrefix
  */
 public function modifyCountQuery(QueryBuilder &$query, $uniqueColumn, $options = [], $tablePrefix = 't')
 {
     $query->select('COUNT(' . $tablePrefix . '.' . $uniqueColumn . ') AS count');
     // Count only unique values
     if (!empty($options['getUnique'])) {
         $selectAlso = '';
         if (isset($options['selectAlso'])) {
             $selectAlso = ', ' . implode(', ', $options['selectAlso']);
         }
         // Modify the previous query
         $query->select($tablePrefix . '.' . $uniqueColumn . $selectAlso);
         $query->having('COUNT(*) = 1')->groupBy($tablePrefix . '.' . $uniqueColumn . $selectAlso);
         // Create a new query with subquery of the previous query
         $uniqueQuery = $this->connection->createQueryBuilder();
         $uniqueQuery->select('COUNT(' . $tablePrefix . '.' . $uniqueColumn . ') AS count')->from('(' . $query->getSql() . ')', $tablePrefix);
         // Apply params from the previous query to the new query
         $uniqueQuery->setParameters($query->getParameters());
         // Replace the new query with previous query
         $query = $uniqueQuery;
     }
     return $query;
 }
开发者ID:Yame-,项目名称:mautic,代码行数:30,代码来源:ChartQuery.php

示例4: addAndSearchLogic

 /**
  * checks if the given result set matches all search terms
  *
  * @param QueryBuilder $query
  * @param string $term
  * @param Keyword[] $keywords
  */
 private function addAndSearchLogic($query, $term, $keywords)
 {
     $searchTerms = $this->termHelper->splitTerm($term);
     $searchTermMatchQueries = $this->createSearchTermMatchQueries($keywords, $searchTerms);
     $totalSearchTermMatchesQuery = $this->connection->createQueryBuilder();
     $totalSearchTermMatchesQuery->select('sum(matches)')->from('(' . $searchTermMatchQueries . ')', 'termMatches')->where('termMatches.elementID = product_id');
     $query->addSelect('(' . $totalSearchTermMatchesQuery->getSQL() . ') AS searchTermMatches');
     $query->having('searchTermMatches >= ' . count($searchTerms));
 }
开发者ID:GerDner,项目名称:luck-docker,代码行数:16,代码来源:SearchTermQueryBuilder.php

示例5: having

 /**
  * Specifies a restriction over the groups of the query.
  * Replaces any previous having restrictions, if any.
  *
  * @param mixed $having The restriction over the groups.
  *
  * @return self
  */
 public function having($having)
 {
     $this->qb->having($having);
     return $this;
 }
开发者ID:Maksold,项目名称:platform,代码行数:13,代码来源:SqlQueryBuilder.php


注:本文中的Doctrine\DBAL\Query\QueryBuilder::having方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。