sách gpt4 ai đã đi

mysql - GROUP_CONCAT 编号

In lại 作者:行者123 更新时间:2023-11-29 01:52:16 27 4
mua khóa gpt4 Nike

是否可以在 GROUP_CONCAT 中进行编号

喜欢

如果,来自 GROUP_CONCAT(empnam SEPARATOR ', ')

我有一套,

 < JohnM, DannyP, TiffnyK, KarlM >

我需要

 < 1.JohnM, 2.DannyP, 3.TiffnyK, 4.KarlM >  

我试过跟随,但没有得到想要的结果。

    SET @x:=0;

LỰA CHỌN

GROUP_CONCAT(@x:=@x+1,' ', s.empnam SEPARATOR ', ') AS emps, @x:=0
< tables >
< filters >

是否可以在查询级别执行,或者我必须在应用程序端执行?

1 Câu trả lời

多年后,我们应该放弃在 lựa chọn 语句中改变变量,因为从 MySQL 8 开始我们可以使用标准方式,使用窗口函数:

with base as (
select dep,
empnam,
count(*) over (partition by dep order by empnam) num
from t)
select dep,
group_concat(concat(num, '.', empnam) separator ', ') emps
from base
group by dep

Xem thêm db-fiddle

原始答案(2016)

您可以在应用程序端执行此操作,但在 MySQL 5.7 中这是可能的。在下面的查询中,我假设您按名称对名称进行分组,例如他们的部门(我称之为 dep)。这是为了说明每个新组的计数器从 1 开始。

select dep, 
group_concat(
concat(@i := if (@grp = dep, @i + 1, if(@grp := dep,1,1)), '.', empnam)
separator ', ') emps
from t,
(select @i := 0, @grp := '') init
group by dep;

Xem thêm SQL fiddlehoặc db-fiddle .

确保将您的表名放在 từ 子句中,并使用您要分组的实际字段。如果您有多个字段作为分组依据,分配给 @i 的表达式将需要更改。例如,您可以连接定义组的值。

通过使用两个字符的分隔符,您可以确保每个名称之间有一个空格。

关于mysql - GROUP_CONCAT 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38449981/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com