2016-04-12 5 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

可能[Doctrine LEFT mysql function]の複製(http://stackoverflow.com/questions/9761748/doctrine-left-mysql-function) – chalasr

答えて

0

@Houssem Zitounの回答は良かったし、私の質問に関連しているので、答えとしてマークしています。しかし、私が使用した答えではありません

私はすでに使用したいSQLでクエリを書いていましたので、私はdoctrineでカスタムクエリを使用することにしました。ここでそれを行う方法について説明します。 Symfony2 & Doctrine: Create custom SQL-Query

関連する問題