當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。