sql >> Databáze >  >> RDS >> Mysql

Nejlepší způsob, jak odstranit hodnotu z pole SET?

Pokud hodnota, kterou potřebujete odstranit ze sady, nemůže být přítomna více než jednou, můžete použít toto:

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

podívejte se, jak to funguje zde . Pokud může být hodnota přítomna více než jednou, odstraní se všechny její výskyty:

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


  1. Binární MySQL vs znaková sada znaků binární

  2. MySQL vícenásobná levá spojení

  3. psycopg2 ve skutečnosti nevkládá data

  4. MYSQL zobrazuje nesprávné řádky při použití GROUP BY