Mysql 或者按Doctrine2按不固定的关键字数进行搜索
我正在通过字符串搜索获取数据 例如,“滑雪”、“网球”或搜索。我可以像这样获取数据Mysql 或者按Doctrine2按不固定的关键字数进行搜索,mysql,doctrine-orm,Mysql,Doctrine Orm,我正在通过字符串搜索获取数据 例如,“滑雪”、“网球”或搜索。我可以像这样获取数据 $articles = $em->createQuery( "SELECT a FROM AcmeTopBundle:ArticleData a where a.title like :keyword OR a.title like :keyword2 order by a.createdAt DESC") ->setParameters(array('keyword' =&
$articles = $em->createQuery(
"SELECT a FROM AcmeTopBundle:ArticleData a
where a.title like :keyword OR a.title like :keyword2
order by a.createdAt DESC")
->setParameters(array('keyword' => 'ski','keyword2' => 'tennis'))
->getResult();
如果我能告诉你我需要多少关键字,它会很好的工作
(在本例中为2个关键字,但如果为3个关键字呢?)
然而,如果我事先不能说出关键词的数量
我怎样才能解决它
有没有好办法达到这个目的?类似的方法应该可以(未经测试)
$qb = $em->createQueryBuilder();
$qb->select('a')
->from('AcmeTopBundle:ArticleData a')
->orderBy('a.createdAt', 'DESC');
foreach ($keywords as $i => $keyword) {
$qb->orWhere('a.title LIKE ?' . $i)->setParameter($i, $keyword);
}
$articles = $qb->getQuery()->getResult();