我想检查数据库中是否存在值的子字符串,在本例中为$ name。
我已经检查了here,但是SUBSTRING要求我将起始索引设置为参数。
LIKE与通配符似乎也没有帮助,因为它与我想要的完全相反:它检查输入是否是db-value的子字符串。
所以我想要的是检查db-value是否是变量$ name的子字符串。到目前为止,我试过这个:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('d')
->from('MyBundle:MyEntity', 'd')
->where(
$qb->expr()->eq($qb->expr()->substring('d.name',1), ':name')
)
->setParameter('name', $name);
但现在还不是这样。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
学说中有LOCATE功能,但我无法使其工作,所以我认为你可以使用LIKE来达到这样的基本要求。
public function findLeague($name)
{
$qb = $this->createQueryBuilder('l');
$qb
->select('l')
->where($qb->expr()->like('l.name', ':name'))
->setParameter('name', '%' . $name . '%');
$qb = $qb->getQuery()->getResult();
return $qb;
}
它将返回:
'1','Spanish Liga'
'3','German Bundes Liga'
'6','French Ligue One'
'7','Lig'