Kan du inte bara sammanfoga det i stället för att försöka dela upp det först?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
Men detta tyder på en dåligt normaliserad databasdesign. Generellt bör en kommaseparerad lista istället lagras som rader i en annan tabell (dvs. en rad per värde i listan) som föreslagits av Mark Baker.
EDIT - Om du bara vill ha en enda kopia av ett id i varje user_ids-fält, oavsett hur många gånger du försöker infoga det, och du vill kunna lägga till flera id samtidigt:-
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
REDIGERA igen - om du har en tabell över användare som innehåller ID kan du välja ID från det där ID:t är ett av dem du vill lägga till.
Något sånt här.
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