Bạn có thể không nối nó vào, thay vì cố gắng tách nó ra trước được không?
UPDATE users_group
SET user_ids = CONCAT_WS(',', user_ids, '5' )
WHERE group_id =1
Nhưng điều này cho thấy một thiết kế cơ sở dữ liệu được chuẩn hóa kém. Nói chung, thay vào đó, một danh sách được phân tách bằng dấu phẩy nên được lưu trữ dưới dạng các hàng trên một bảng khác (tức là một hàng cho mỗi giá trị trong danh sách) theo đề xuất của Mark Baker.
CHỈNH SỬA - Nếu bạn chỉ muốn có một bản sao duy nhất của bất kỳ id nào trong mỗi trường user_ids, bất kể bạn cố chèn nó bao nhiêu lần và bạn muốn có thể thêm nhiều id cùng một lúc:-
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
CHỈNH SỬA lại - nếu bạn có một bảng người dùng chứa id thì bạn có thể chọn id từ đó mà id là một trong những id bạn muốn thêm.
Một cái gì đó như thế này.
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