Nếu giá trị bạn cần xóa khỏi tập hợp không thể xuất hiện nhiều lần, bạn có thể sử dụng giá trị này:
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM REPLACE(CONCAT(',', categories, ','), ',2,', ','))
WHERE
FIND_IN_SET('2', categories)
xem nó hoạt động tại đây . Nếu giá trị có thể xuất hiện nhiều lần, điều này sẽ xóa tất cả các lần xuất hiện của nó:
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM
REPLACE(
REPLACE(CONCAT(',',REPLACE(col, ',', ',,'), ','),',2,', ''), ',,', ',')
)
WHERE
FIND_IN_SET('2', categories)