mysql - 如何在 Symfony2 数据库查询中使用 MATCH

标签 mysql symfony doctrine-orm

我正在为我的 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

但是,当我在项目中运行它时,出现以下错误:

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

最佳答案

Doctrine 不支持开箱即用,是的。但您可以:

关于mysql - 如何在 Symfony2 数据库查询中使用 MATCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8119499/

相关文章:

php - 是否可以在 Flash 消息中添加链接?

symfony - 在symfony2中使用phpUnit进行测试时如何回滚任何事务

mysql - 教义或地方给出奇怪的结果

PHP如何在时间组合框中选择数据库中存储的时间

php - MYSQL & PHP 计算特定日期的总小时数并排除重叠小时数

php - Laravel 5 加入表并选择热门类别

php - 允许外部开发人员从我的网络应用程序集成一些基本功能的最简单方法是什么?

php - 交响乐 :HOW TO Create Shared -General- (Helper) used in multiple bundles

Symfony:如何从第三方包加载工作流配置

php - Doctrine Inheritance - 从 Joined table 继承 Single_Table