gpt4 book ai didi

MySql 连接除最后一条记录之外的字符

转载 作者:行者123 更新时间:2023-11-29 07:51:48 25 4
gpt4 key购买 nike

如何将除最后一个结果之外的字符连接到 MySQL 结果?

所以:

friends
-------------
friend-a
friend-b
friend-c
friend-d
friend-e

我现在select concat(friends,',') from Friends,这实际上给了我每个 friend 的名字和,,但我不需要, 最后一个。

由于大小限制,我无法在这里使用 group_concat。

尝试输出

friend-a,
friend-b,
friend-c,
friend-d,
friend-e

最佳答案

如果您不想使用组连接(这将是执行此操作的最佳方法..您可以删除最后一行,然后使用并集重新添加或在字符串上使用聚合函数以返回最大的行。

(select concat(friends,',') as friend
from friends
WHERE friends <> (SELECT friends
from friends
order by friends DESC
limit 1)
)
UNION
(SELECT friends
from friends
order by friends DESC
limit 1)

Fiddle Demo

更好的方法是这样

SET @a := (SELECT MAX(friends) FROM friends);
SELECT
CASE
WHEN friends <> @a
THEN concat(friends,',')
ELSE friends
END AS friends
FROM friends
GROUP BY friends

Another Fiddle

但是,最简单的方法是仅使用 group_concat 并增加 session 的大小...不是在 .cnf 文件中,而是仅针对 session ..这样您就不会影响服务器的存储量.

参见My Answer Here了解如何设置 session 最大长度并使用它

关于MySql 连接除最后一条记录之外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26220782/

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