如何在Symfony2查询生成器中使用SQL LEFT()?

时间:2016-04-12 19:16:01

标签: symfony doctrine-orm doctrine-query

这是使我的查询失败的行。

$query = $query->where('a.field LIKE :keyword OR LEFT(a.otherfield, 3) = LEFT(:keyword, 3)');

我收到此错误:

[Syntax Error] line 0, col 104: Error: Expected known function, got 'LEFT'

此SQL代码有效:

SELECT * FROM `table`
WHERE field LIKE 'searchterm'
OR LEFT(`otherfield`, 3) = LEFT('searchterm', 3)

为什么LEFT()会返回错误?使用查询构建器有不同的方法吗?

2 个答案:

答案 0 :(得分:1)

尝试查看此question。否则,尝试旧学校的方式! native-sql-with-doctrine

答案 1 :(得分:0)

@Houssem Zitoun的答案很好,我将其标记为答案,因为它与我的问题相关。然而,这不是我使用的答案

我已经用sql编写了我想要使用的查询,所以我决定使用带有教义的自定义查询。它在这里解释了如何做到这一点。 Symfony2 & Doctrine: Create custom SQL-Query