DOCTRINE - DQL - 改进查询 - SELECT 没有 NULL

DOCTRINE - DQL - Improve query - SELECT without NULL

我正在努力改进我的查询。

我有这个table:

  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()
    ;

请问我该怎么办?谢谢:)

您的 DQL 中的子句顺序错误(顺便说一下,这在普通 sql 中也是错误的)- GROUP BY 必须在 [= 之后转到查询的末尾14=]

试试这个:

$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 语法