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 语法
我正在努力改进我的查询。
我有这个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 语法