Si la valeur que vous devez supprimer de l'ensemble ne peut pas être présente plus d'une fois, vous pouvez utiliser ceci :
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM REPLACE(CONCAT(',', categories, ','), ',2,', ','))
WHERE
FIND_IN_SET('2', categories)
le voir fonctionner ici . Si la valeur peut être présente plus d'une fois, cela en supprimera toutes les occurrences :
UPDATE yourtable
SET
categories =
TRIM(BOTH ',' FROM
REPLACE(
REPLACE(CONCAT(',',REPLACE(col, ',', ',,'), ','),',2,', ''), ',,', ',')
)
WHERE
FIND_IN_SET('2', categories)