我建立一个搜索功能为我的Symfony2项目,我写的SQL它如下:如何使用匹配的Symfony2数据库查询
SELECT dlc.title, dlc.description, dlc.keywords
FROM ShoutMainBundle:Dlc dlc
WHERE MATCH (dlc.title, dlc.description, dlc.keywords) AGAINST (":keyword" IN BOOLEAN MODE)
AND dlc.type = (":audio")
ORDER BY dlc.date DESC
然而,当我在项目运行这个以下错误给出:
[Syntax Error] line 0, col 96: Error: Expected known function, got 'MATCH'
是否有替代我可以使用,而不是MATCH
?目前(只是这样我才能进行基本测试)我使用LIKE,但如果使用多个单词进行搜索,则效果不佳。
编辑: 这是怎样的代码在代码中使用:
$em = $this->getDoctrine()->getEntityManager();
$wckeyword = '%'.$skeyword.'%';
$dlcresult = $em->createQuery('
SELECT dlc.title, dlc.description, dlc.keywords
FROM ShoutMainBundle:Dlc dlc
WHERE MATCH (dlc.title, dlc.description, dlc.keywords) AGAINST (":keyword" IN BOOLEAN MODE)
AND dlc.type = (":audio")
ORDER BY dlc.date DESC'
)->setParameters(array('type' => $stype, 'keyword' => $wckeyword));
$dlcres = $dlcresult->getResult();
你在使用打电话给你的疑问?请发布你如何查询MySQL服务器的代码示例。 – gilden
刚刚编辑我的问题与它 – mickburkejnr
也许这将帮助http://stackoverflow.com/questions/4238814/problem-with-match-against-in-doctrine – tawfekov