sql >> Base de Datos >  >> RDS >> Mysql

¿La mejor manera de eliminar el valor del campo SET?

Si el valor que necesita eliminar del conjunto no puede estar presente más de una vez, puede usar esto:

UPDATE yourtable
SET
  categories =
    TRIM(BOTH ',' FROM REPLACE(CONCAT(',', categories, ','), ',2,', ','))
WHERE
  FIND_IN_SET('2', categories)

míralo funcionando aquí . Si el valor puede estar presente más de una vez, se eliminarán todas las apariciones:

UPDATE yourtable
SET
  categories =
    TRIM(BOTH ',' FROM
      REPLACE(
        REPLACE(CONCAT(',',REPLACE(col, ',', ',,'), ','),',2,', ''), ',,', ',')
    )
WHERE
  FIND_IN_SET('2', categories)