sql >> Databasteknik >  >> RDS >> Mysql

Det bästa sättet att ta bort värde från SET-fältet?

Om värdet du behöver ta bort från setet inte kan finnas mer än en gång kan du använda detta:

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

se att det fungerar här . Om värdet kan finnas mer än en gång, kommer detta att ta bort alla förekomster av det:

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


  1. Hur profilerar man PostgreSQL Database?

  2. CTE och födelsedagsparadoxen

  3. WebApp (Tomcat-jdbc) Poolad DB-anslutning som ger undantag för övergivande

  4. MySQL-sträng till DATUM/TID eller TIDSTÄMPEL