【发布时间】:2011-11-14 09:27:39
【问题描述】:
我正在为我的 Symfony2 项目构建一个搜索功能,我为它编写了如下 SQL:
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
但是,当我在项目中运行它时,会出现以下错误:
[语法错误] line 0, col 96: Error: Expected known function, got '匹配'
我可以使用替代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 服务器的代码示例。
-
刚刚用它编辑了我的问题
-
@tawfekov 这适用于学说 1.x。也许这会对您有所帮助:groups.google.com/group/doctrine-user/browse_thread/thread/…
标签: mysql symfony doctrine-orm