2016-05-04 8 views
2

列フィールドに特定の文字列が含まれているレコードを数えようとしています。基準が満たされたレコードを集計する

これが私のクエリです:

$em = $this->getDoctrine()->getEntityManager(); 
    $query = $em->createQueryBuilder() 
     ->select("count(e.$column)") 
     ->from("AppBundle:$table", "e") 
     ->where("e.urlid LIKE \"-test\"") 
     ->getQuery(); 
    $occurences = $query->getSingleScalarResult(); 

私は、MySQLのマニュアルクエリを実行するので、それはおそらく、教義のことだときに動作します。私は教義からこのエラーを得ています:

[Syntax Error] line 0, col 66: Error: Expected StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression, got '"'

何か助けていただければ幸いです!

答えて

0

このようないろいろ書い持つような式を設定に修正してください:あなたのケースで

$qb->andWhere($qb->expr()->like('user.name', $qb->expr()->literal('%'.$name.'%'))); 

はこれを試してみてください。

$key = '-test'; 
$em = $this->getDoctrine()->getEntityManager(); 
$qb = $em->createQueryBuilder(); 
    $query = $qb 
     ->select("count(e.$column)") 
     ->from("AppBundle:$table", "e"); 

$qb->andWhere($qb->expr()->like('e.urlid', $qb->expr()->literal('%'.$key.'%'))); 


$occurences = $qb->getQuery()->getSingleScalarResult(); 

・ホープ、このヘルプ

0

私は最終的にそれを修正するために管理していますそれは、

$query = $this->em->createQueryBuilder() 
     ->select("count(e.$column)") 
     ->from("AppBundle:$table", "e") 
     ->where("e.$column LIKE :url") 
     ->setParameter("url", $url."%") 
     ->getQuery(); 
$occurences = $query->getSingleScalarResult(); 
関連する問題