【发布时间】:2023-03-16 05:49:01
【问题描述】:
Select group_concat(ID SEPARATOR '|')
from TableJ J
Left Join TableL L on L.J_ID=J.ID
Left Join TableB B on B.LJ_ID=L.F_ID
Left Join TableLJ LJ on LJ.ID=L.F_ID
Group
by J.ID
输出返回类似的记录
- 103237|43775|84462|19153|54618|108646|50142|96946|37251|75984|54524
- 29728|46758|65987|20772|34513|61323|2778|32630|53616|103450|27152|37278|65950|13837|33500|59490
等
问题是我需要将结果中的记录/管道数限制为 5 条记录。
在 TableLJ 中有一个字段 Population,我可以使用它来排序和限制,但没有多少摆弄可以让我指定我想从该表 PER 组中选择前 5 个。
更新是我可以执行以下操作来限制 group_concat (仍然不能解决让它们首先按 LJ.Population 排序)
substring_index(group_concat(ID SEPARATOR '|'),'|',5)
【问题讨论】:
-
嗨。选择每组前 n 个是常见问题解答。 (显然。)(它有一个标签:[limit-per-group]。)请在考虑询问之前进行研究。见How to Ask。
-
@philipxy显然是什么?我做了研究,并以我能弄清楚如何问的方式问它。你是说我应该知道它被称为 ilmit-per-group 还是有这样的东西?
-
你的 MySQL 服务器版本是多少?
-
你打算对结果做什么(如果有的话)?