क्या आप इसे पहले विभाजित करने की कोशिश करने के बजाय इसे केवल जोड़ नहीं सकते?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
लेकिन यह एक बुरी तरह से सामान्यीकृत डेटाबेस डिज़ाइन का सुझाव देता है। आम तौर पर एक अल्पविराम से अलग की गई सूची को मार्क बेकर द्वारा सुझाए गए अनुसार किसी अन्य तालिका (यानी, सूची में प्रति मान एक पंक्ति) पर पंक्तियों के रूप में संग्रहीत किया जाना चाहिए।
संपादित करें - यदि आप प्रत्येक 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