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

Den bedste måde at fjerne værdi fra SET-feltet?

Hvis den værdi, du skal fjerne fra sættet, ikke kan være til stede mere end én gang, kan du bruge denne:

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

se det fungere her . Hvis værdien kan være til stede mere end én gang, vil dette fjerne alle forekomster af den:

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


  1. Mysql rekursiv lagret procedure...Grænse 0 nået...kan ikke ændre variablen max_sp_recursion_depth

  2. MySQL - Sådan får du søgeresultater med nøjagtig relevans

  3. Er normalt MySql-indeks påkrævet, når vi har Composite-indeks

  4. Sådan sletter du dublerede rækker fra en MySQL-tabel