Non puoi semplicemente concatenarlo, invece di provare a dividerlo prima?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
Ma questo suggerisce una progettazione del database mal normalizzata. Generalmente un elenco separato da virgole dovrebbe invece essere archiviato come righe su un'altra tabella (ad esempio, una riga per valore nell'elenco) come suggerito da Mark Baker.
EDIT - Se vuoi avere una sola copia di qualsiasi ID in ogni campo user_ids, indipendentemente da quante volte tenti di inserirlo, e vuoi essere in grado di aggiungere più ID contemporaneamente:-
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
MODIFICA di nuovo:se hai una tabella di utenti contenente gli ID, puoi selezionare gli ID da quello in cui l'ID è uno di quelli che desideri aggiungere.
Qualcosa del genere.
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