gpt4 book ai didi

mysql - 组函数的无效使用(group_concat 和 MySQL)

转载 作者:行者123 更新时间:2023-11-29 05:23:15 25 4
gpt4 key购买 nike

我在实现这个时遇到了问题:

UPDATE users
INNER JOIN relations_colors ON (relations_colors.user_id = users.id)
INNER JOIN colors ON (colors.id = relations_colors.color_id)
SET search_cache = GROUP_CONCAT( colors.name SEPARATOR " ")

phpmyadmin 说:“#1111 - 群组功能使用无效”,我该如何解决?

最佳答案

我认为这样的事情会执行您正在寻找的更新操作:

UPDATE users u
JOIN ( SELECT r.user_id
, GROUP_CONCAT(c.name SEPARATOR ' ') AS search_cache
FROM relations_colors r
JOIN colors c ON c.id = r.color_id
GROUP BY r.user_id
) s
ON u.id = s.user_id
SET u.search_cache = s.search_cache

请注意,这将仅更新用户表中与 relations_colors/colors 匹配的行。

要更新用户的所有行,您需要在 JOIN 关键字之前包含 LEFT 关键字以获得“外部连接”;对于没有任何匹配行的用户,这会将 search_cache 列设置为 NULL。

为了使结果更具确定性,我们通常会在 GROUP_CONCAT 函数中包含一个 ORDER BY 子句,例如:

GROUP_CONCAT(c.name SEPARATOR ' ' ORDER BY c.id)

关于mysql - 组函数的无效使用(group_concat 和 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137970/

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