Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tốt nhất để loại bỏ giá trị khỏi trường SET?

Nếu giá trị bạn cần xóa khỏi tập hợp không thể xuất hiện nhiều lần, bạn có thể sử dụng giá trị này:

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

xem nó hoạt động tại đây . Nếu giá trị có thể xuất hiện nhiều lần, điều này sẽ xóa tất cả các lần xuất hiện của nó:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các lớp lồng nhau - CustomRowMapper !! Nó không còn là một vấn đề nữa !! - Phần 1

  2. Skip and Take không hoạt động với MySQL EntityFrameworkCore

  3. Tham số ràng buộc cho mệnh đề WHERE IN với PDO

  4. Tạo hàm thông qua MySQLdb

  5. MySQL SELECT cột duy nhất trong đó cột khác là tối đa