我一直在浏览文档/谷歌,但没有找到任何解决方案。
有没有什么方法可以在没有本地 mysql 的情况下使用 Doction2 (DQL) 执行或模仿 GROUP_CONCAT?
例如。:
SELECT u.id, u.name, [GROUP_CONCAT(...)] AS user_messages
FROM models\Users u
LEFT JOIN models\Messages m
GROUP BY u.id
要得到
GROUP_CONCAT(m.id,'|',m.title SEPARATOR ':')
现在我正在使用 createNativeQuery() 来运行它,但我正在寻找一个 dotric2 解决方案。
提前致谢
最佳答案
是的,这可以通过 Beberlei(Doctrine2 的核心开发人员)的 DoctrineExtensions 实现。在doctrine2 中,您可以通过扩展functionNode 类来定义您自己的查询表达式。
最简单的方法是在您的项目中包含 DoctrineExtensions 库。我不知道您使用的是 Zend Framework 还是 Symfony 或任何其他框架,因此无法帮助您嵌入它。
您可以在此处查看 DoctrineExtensions:
https://github.com/beberlei/DoctrineExtensions
和组功能:
https://github.com/beberlei/DoctrineExtensions/blob/master/src/Query/Mysql/GroupConcat.php
请注意,您应该使用 GroupConcat 作为函数名,而不是像 MySQL 中那样使用 GROUP_CONCAT。
希望对你有帮助!
关于php - 学说2和group_concat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7864345/