Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo migliore per rimuovere il valore dal campo SET?

Se il valore che devi rimuovere dal set non può essere presente più di una volta, puoi usare questo:

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

guardalo funzionare qui . Se il valore può essere presente più di una volta, questo ne rimuoverà tutte le occorrenze:

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