Mysql
 sql >> Base de données >  >> RDS >> Mysql

La meilleure façon de supprimer la valeur du champ SET ?

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)