gpt4 book ai didi

mysql 查询到 querybuilder

转载 作者:行者123 更新时间:2023-11-29 15:37:13 27 4
gpt4 key购买 nike

有没有一种方法可以使查询生成器类似于 Mysql 中的下一个查询生成器:

"SELECT a.* FROM fsa_areas ORDER BY (SELECT count(*) FROM fsa_areas a1 WHERE a1.Responsible = a.Responsible) DESC LIMIT 1;


我正在尝试这个:

$em->getRepository('FSABundle:FsaAreas')->createQueryBuilder('u')
->select('u.name, u.responsible')
->where('u.enabled = true')
->orderBy(' ','DESC')
->getQuery()->getResult();


但我不知道是否可以在 Querybuilder 中执行与 Mysql 中类似的 OrderBy 操作?

最佳答案

您可以像这样重写查询:

SELECT a.* FROM fsa_areas a
LEFT JOIN fsa_areas a1 ON(a1.responsible = a.responsible)
GROUP BY a.id
ORDER BY COUNT(a1.id) DESC;

并将其转换为查询生成器:

$entityManager
->getRepository(FsaAreas::class)
->createQueryBuilder('a, COUNT(a1) AS HIDDEN cnt')
->select('a')
->leftJoin(FsaAreas::class, 'a1', Expr\Join::WITH, 'a1.responsible = a.responsible')
->groupBy('a')
->orderBy('cnt', 'DESC')
->getQuery()
->getResult();

关于mysql 查询到 querybuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com