带有 DoctrineExtensions 的学说 2 中的 FIND_IN_SET

Waq*_*der 5 mysql symfony doctrine-orm zend-framework2

这是我的查询

 $sql = 'SELECT users.userId as userId
      FROM App\UserProjects up
      LEFT JOIN up.user users 
      WHERE up.project = :project AND FIND_IN_SET(:comp, up.company)';
 $query = $this->getEntityManager()->createQuery($sql);
 $query->setParameter('project', 3);
$query->setParameter('comp', 4);
$results = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

但这给了我错误

[语法错误] 第 0 行,第 -1 行:错误:预期 =、<、<=、<>、>、>=、!=,已结束字符串。

我究竟做错了什么?有解决办法吗?并且我正在搜索的字段具有逗号分隔值,如果 FIND_IN_SET 不起作用,还有其他方法可以执行相同的查询吗?

我正在使用这个扩展 https://github.com/beberlei/DoctrineExtensions

got*_*oto 3

FIND_IN_SET为您提供搜索元素的索引。你必须将它与某些东西进行比较:

FIND_IN_SET(:comp, up.company) != 0
Run Code Online (Sandbox Code Playgroud)

您应该使用IN它,它不需要任何扩展

AND :comp IN up.company
Run Code Online (Sandbox Code Playgroud)