我遇到DQL问题。 我的SQL查询看起来像:
public class Requirements
{
public string EventMessageUId { get; set; }
public int ProjectId { get; set; }
public string CreatedByUser { get; set; }
public string CreatedByApp { get; set; }
public string CreatedOn { get; set; }
private Message _Message = new Message();
public Message Message { get { return this._Message ; } set { this._Message = value; } }
}
public class Message
{
public string StoryID { get; set; }
public string StoryDesc { get; set; }
}
我尝试将此查询转移到doctrine:
SELECT COUNT(c.id) FROM company c WHERE (SELECT MIN(u.surname) FROM contact u WHERE u.company_id = c.id) LIKE '%a%'
但是这次抛出
QueryException:[语法错误]第0行,第136栏:错误:预期=,<,< =,<>,>,> =,!=,得到'LIKE''
如果我将$this->getDoctrine()->getManager()
->getRepository('XYZBundle:Company')
->createQueryBuilder('c')
->select('COUNT(c.id)')
->where("(SELECT MIN(u.surname) FROM XYZBundle:Contact u where u.id = c.id) LIKE '%a%'")
->getQuery()
->getResult();
更改为LIKE '%a%'
,一切正常,但我需要喜欢。为什么这个查询不起作用?