Jeśli wartość, którą chcesz usunąć z zestawu, nie może występować więcej niż raz, możesz użyć tego:
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM REPLACE(CONCAT(',', categories, ','), ',2,', ','))
WHERE
FIND_IN_SET('2', categories)
zobacz, jak działa tutaj . Jeśli wartość może występować więcej niż jeden raz, spowoduje to usunięcie wszystkich jej zanieczyszczeń:
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM
REPLACE(
REPLACE(CONCAT(',',REPLACE(col, ',', ',,'), ','),',2,', ''), ',,', ',')
)
WHERE
FIND_IN_SET('2', categories)