gpt4 book ai didi

mysql - 如何更好地连接 SQL 中其他表的结果

转载 作者:行者123 更新时间:2023-11-29 22:04:32 25 4
gpt4 key购买 nike

我想查询所有帖子的列表(在指定范围内),然后以列表或数组的形式获取每个帖子的所有评论。

我最初想一遍又一遍地查询每篇文章,但这似乎不惯用,而且好像会导致性能问题。然后我找到了GROUP_CONCAT。问题在于 GROUP_CONCAT 通过在结果之间放置一个字符来连接查询的每个结果。它默认使用逗号分隔结果,但这很麻烦,因为注释本身很可能包含逗号。

避免这种情况的唯一方法是使用一系列不常见的字符作为分隔符吗?这对我来说似乎有点“肮脏”。有更好的方法吗?

SELECT E.id, E.time, E.title, E.body, E.type, C.comments
FROM elements E
LEFT JOIN(
SELECT elementID, GROUP_CONCAT(body SEPARATOR '|-|') AS comments
FROM comments
GROUP BY elementID
) C on C.elementID = E.id;

Results of MySQL query

最佳答案

Is there a better way to do this?

当然不,GROUP_CONCAT() 是这里的最佳选择。同样,正如您已经指出的,您可以使用与默认 , 不同的分隔符。另外,如果您认为您的评论本身可能有逗号,那么您可以使用 REPLACE() 字符串函数并替换那些 ,,然后再像

那样连接它们
GROUP_CONCAT(REPLACE(body,',','')) AS comments

关于mysql - 如何更好地连接 SQL 中其他表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289612/

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