gpt4 book ai didi

mysql - 如何在 jooq 中用多个字段做一个相当于 group_concat 的 mysql?

转载 作者:行者123 更新时间:2023-11-29 01:51:43 27 4
gpt4 key购买 nike

我们如何在 jooq 中实现与此语句等效的内容?

select course.course_id, 
group_concat(course_user.user_id, ":", course_user.current_state)
from course
left join course_user
on course.course_id = course_user.course_id
group by course.course_id;

上面的结果在mysql中会是这样的

1   58:COMPLETED,11908:ASSIGNED,11919:COMPLETED,11920:ASSIGNED
2 11913:PENDING_APPROVAL,11919:COMPLETED,11921:COMPLETED

我们如何在 jooq 中实现这一点? jooq 中的 groupConcat 只接受一个 Field 参数或者接受一个 Field 和一个分隔符字符串。

最佳答案

我以这种方式使用 groupConcat 而不是 concat 解决了这个问题 -

DSL.groupConcatDistinct(DSL.concat(COURSE_USER.USER_ID, DSL.val(":"), COURSE_USER.CURRENT_STATE))

出于某种原因,如果我不使用 distinct,我会将每个条目作为两个值。可能是因为它对 concat 执行一次,对 group concat 执行一次?如果是这种情况,那么它肯定效率较低。在我找到更好的方法或者如果这里有人可以给我更好的方法之前,我会坚持下去。

关于mysql - 如何在 jooq 中用多个字段做一个相当于 group_concat 的 mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070826/

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