DOCTRINE - DQL - 改进查询 - SELECT不带NULL

时间:2015-01-15 09:56:36

标签: symfony doctrine-orm dql

我正在尝试改进我的查询。

我有这张桌子:

  id    lang_code   language   
    1    fr-1        french 
    2    fr-2        french     
    3    en-1        english    
    4    en-2        english    
    5    NULL       espagnol
    6    NULL       chineese

我做了这个查询

$langues = $this->getDoctrine()->getManager()
->createQuery('SELECT DISTINCT c FROM AVCMediasBundle:Langue c GROUP BY c.language')
->getResult()
;

我有这个结果,暂时没关系

  id    lang_code   language   
    2    fr-2        french     
    4    en-2        english    
    5    NULL       espagnol
    6    NULL       chineese

但现在我正在尝试改进此查询。我需要执行相同的操作,但NULL

中没有lang_code结果

结果必须是这样的:

  id    lang_code   language   
    2    fr-2        french     
    4    en-2        english    

我累了,但有些问题......

$langues = $this->getDoctrine()->getManager()
    ->createQuery('SELECT DISTINCT c FROM AVCMediasBundle:Langue c GROUP BY c.language , WHERE c.langCode IS NOT NULL')
    ->getResult()
    ;

我该怎么办? thx:)

1 个答案:

答案 0 :(得分:1)

您的DQL中的条款顺序错误(顺便说一下sql这也是错误的) - GROUP BY必须在查询结束后WHERE }

试试这个:

$langues_dispo_google_speech = $this->getDoctrine()->getManager()
    ->createQuery('SELECT DISTINCT c FROM AVCMediasBundle:Langue c WHERE c.langCode IS NOT NULL GROUP BY c.language')
    ->getResult()
    ;

检查this以查看正确的sql语法