Kun je het niet gewoon samenvoegen, in plaats van het eerst op te splitsen?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
Maar dit suggereert wel een slecht genormaliseerd databaseontwerp. Over het algemeen moet een door komma's gescheiden lijst in plaats daarvan worden opgeslagen als rijen in een andere tabel (dwz één rij per waarde in de lijst), zoals voorgesteld door Mark Baker.
BEWERKEN - Als u slechts één kopie van een id in elk veld user_ids wilt hebben, ongeacht hoe vaak u het probeert in te voegen, en u wilt meerdere id's tegelijk kunnen toevoegen:-
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
EDIT opnieuw - als u een tabel met gebruikers heeft die de id's bevatten, kunt u de id's selecteren uit die waar de id een is van de id's die u wilt toevoegen.
Zoiets.
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