Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der beste Weg, um den Wert aus dem SET-Feld zu entfernen?

Wenn der Wert, den Sie aus dem Satz entfernen müssen, nicht mehr als einmal vorhanden sein kann, können Sie Folgendes verwenden:

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

Sehen Sie, wie es hier funktioniert . Wenn der Wert mehr als einmal vorhanden sein kann, werden alle Vorkommen davon entfernt:

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