FIND_IN_SET 在学说 2 中与学说扩展

FIND_IN_SET in doctrine 2 with DoctrineExtensions

这是我的查询

 $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();

但这给了我错误

[Syntax Error] line 0, col -1: Error: Expected =, <, <=, <>, >, >=, !=, got end of string.

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

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

我建议你直接使用symfony bundle "wrapper"而不是库,因为它会帮助你以正确的方式注册和使用扩展。

如果您要查找文档,请阅读 here

FIND_IN_SET 给你搜索到的元素的索引。你必须将它与某些东西进行比较:

FIND_IN_SET(:comp, up.company) != 0

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

AND :comp IN up.company