2012-04-24 11 views
1

でこのクエリをエラーを生成:教義2.1.5 setFirstResultメソッドは、()のMySQL 5.5

$this->getEntityManager() 
     ->createQuery("SELECT k FROM FooBarBundle:Kode k WHERE k.kode LIKE :keyword OR k.nama LIKE :keyword ORDER BY k.kode ASC") 
      ->setParameter("keyword", "%$keyword%") 
      ->setMaxResults($limit) 
      ->setFirstResult($offset) 
     ->getResult(); 

次のSQLエラーを生成します。

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OFFSET 0' at line 1 

しかし、私はsetFirstResult($offset)行を削除した場合、それが正常に動作します。 Doctrineライブラリ全体をアップグレードする代わりに、これを回避する方法はありますか(パッチは問題ありません)?

答えて

1

私はあなたのクエリから

ORDER BY k.kode ASC 

を削除して、このような方法でそれを設定しなければならないと思う:

$this->getEntityManager() 
     ->createQuery("SELECT k FROM FooBarBundle:Kode k WHERE k.kode LIKE :keyword OR k.nama LIKE :keyword") 
      ->setParameter("keyword", "%$keyword%") 
      ->setMaxResults($limit) 
      ->setFirstResult($offset) 
      ->orderBy("k.kode") 
      ->getResult(); 
+1

どういうわけか、それは動作します。ありがとう。今度はsymfonyフレームワーク全体をアップグレードする必要があります... – Furunomoe

関連する問題