ใช้คำสั่ง CASE ภายใน UPDATE เพื่อกำหนดค่า ID ใหม่ตามชื่อ:
mysql> CREATE TABLE DemoTable1545 (
-> Id INT,
-> FirstName VARCHAR(20)
-> );
Query OK, 0 rows affected (1.65 sec)
mysql> INSERT INTO DemoTable1545 VALUES(1, 'John'); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable1545 VALUES(2, 'Chris'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO DemoTable1545 VALUES(3, 'Bob'); Query OK, 1 row affected (0.15 sec)
mysql> SELECT * FROM DemoTable1545;
+------+-----------+ | Id | FirstName | +------+-----------+ | 1 | John | | 2 | Chris | | 3 | Bob | +------+-----------+ 3 rows in set (0.00 sec)
อัปเดต ID ตามเงื่อนไขชื่อ:
mysql> UPDATE DemoTable1545
-> SET Id = CASE
-> WHEN FirstName LIKE '%John%' THEN 101
-> WHEN FirstName LIKE '%Chris%' THEN 201
-> WHEN FirstName LIKE '%Bob%' THEN 501
-> ELSE Id
-> END;
Query OK, 3 rows affected (0.18 sec)
mysql> SELECT * FROM DemoTable1545;
+------+-----------+ | Id | FirstName | +------+-----------+ | 101 | John | | 201 | Chris | | 501 | Bob | +------+-----------+ 3 rows in set (0.00 sec)
ประยุกต์ใช้: เหมาะสำหรับการแมปค่าเก่าเป็นค่าใหม่, ระบบย้ายข้อมูล (migration), หรือกำหนดรหัสเฉพาะกลุ่ม