2016-04-12 54 views
0

這是使我的查詢失敗的行。如何在Symfony2查詢生成器中使用SQL LEFT()?

$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()返回一個錯誤?有沒有一種不同的方式與查詢生成器做到這一點?

+0

您將不得不實現您自己的DQL函數,請參閱[this](http://www.doctrine-project.org/2010/03/29/doctrine2-custom-dql-udfs.html) – LMS94

+1

可能[教條LEFT mysql函數]的副本(http://stackoverflow.com/questions/9761748/doctrine-left-mysql-function) – chalasr

回答

0

@Houssem Zitoun的回答很好,我將它標記爲答案,因爲它與我的問題相關。這不是我用的答案

我已經有了用sql編寫的查詢,我想用它,所以我決定使用自定義查詢與教條。它在這裏解釋如何做到這一點。 Symfony2 & Doctrine: Create custom SQL-Query

相關問題