Не можете ли просто да го свържете, вместо да се опитвате първо да го разделите?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
Но това предполага лошо нормализиран дизайн на базата данни. Като цяло списък, разделен със запетая, вместо това трябва да се съхранява като редове в друга таблица (т.е. по един ред на стойност в списъка), както е предложено от Mark Baker.
РЕДАКТИРАНЕ – Ако искате да имате само едно копие на всеки идентификатор във всяко поле user_ids, независимо колко пъти се опитвате да го вмъкнете и искате да можете да добавяте няколко идентификатора наведнъж:-
UPDATE users_group a
INNER JOIN
(
SELECT 3 AS an_id
UNION
SELECT 4
) b
ON FIND_IN_SET(b.an_id, a.user_ids) = 0
SET a.user_ids = CONCAT_WS(',', a.user_ids, b.an_id )
WHERE a.group_id =1
РЕДАКТИРАНЕ отново - ако имате таблица с потребители, съдържаща идентификаторите, тогава можете да изберете идентификаторите от този, където идентификаторът е един от тези, които искате да добавите.
Нещо подобно.
UPDATE users_group a
INNER JOIN
(
SELECT id
FROM users
WHERE id IN (3, 4)
) b
ON FIND_IN_SET(b.id, a.user_ids) = 0
SET a.user_ids = CONCAT_WS(',', a.user_ids, b.id )
WHERE a.group_id =1