ใช้ชนิดข้อมูล SET และการดำเนินการบิตเวส (bitwise) เพื่อลบค่าที่ต้องการออกจากชุดข้อมูล
สร้างตารางด้วย SET
mysql> create table DemoTable836(FirstName SET('John','Chris','Adam'));
Query OK, 0 rows affected (0.60 sec)
เพิ่มข้อมูล
mysql> insert into DemoTable836 values('John,Chris'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable836 values('John,Chris,Adam'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable836 values('Chris,Adam'); Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable836 values('John,Adam'); Query OK, 1 row affected (0.37 sec)
แสดงข้อมูลก่อนลบ
mysql> select * from DemoTable836;
+-----------------+ | FirstName | +-----------------+ | John,Chris | | John,Chris,Adam | | Chris,Adam | | John,Adam | +-----------------+ 4 rows in set (0.00 sec)
คิวรีลบ 'Chris' ออกจากชุดข้อมูล
mysql> update DemoTable836
set FirstName = FirstName & ~ (1 << FIND_IN_SET('Chris', FirstName) - 1);
Query OK, 3 rows affected (0.21 sec)
ตรวจสอบผลลัพธ์
mysql> select * from DemoTable836;
+-----------+ | FirstName | +-----------+ | John | | John,Adam | | Adam | | John,Adam | +-----------+ 4 rows in set (0.00 sec)
คำอธิบายเทคนิค: ชนิด SET จัดเก็บข้อมูลเป็นบิตแมป (bitmap) การใช้ FIND_IN_SET หาตำแหน่ง แล้ว 1 << (pos-1) สร้างบิตมาสก์ แล้ว & ~mask เพื่อลบบิตนั้นออก