Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay thế bản ghi trùng lặp cụ thể bằng giá trị mới trong MySQL

Dùng UPDATE ... SET cot = REPLACE(cot, 'gia_tri_cu', 'gia_tri_moi'). Tạo bảng:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(50)
); Query OK, 0 rows affected (0.62 sec)

Chèn dữ liệu (Chris xuất hiện 2 lần):

mysql> INSERT INTO DemoTable(Name) VALUES('Chris');  Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Robert'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');  Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('David');  Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('Mike');   Query OK, 1 row affected (0.13 sec)

Hiển thị dữ liệu:

mysql> SELECT * FROM DemoTable;

Kết quả:

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Chris  |
| 2  | Robert |
| 3  | Chris  |
| 4  | David  |
| 5  | Mike   |
+----+--------+
5 rows in set (0.00 sec)

Thay thế tất cả 'Chris' thành 'Adam Smith':

mysql> UPDATE DemoTable SET Name = REPLACE(Name, 'Chris', 'Adam Smith');
Query OK, 2 rows affected (0.17 sec)

Kiểm tra lại:

mysql> SELECT * FROM DemoTable;

Kết quả:

+----+------------+
| Id | Name       |
+----+------------+
| 1  | Adam Smith |
| 2  | Robert     |
| 3  | Adam Smith |
| 4  | David      |
| 5  | Mike       |
+----+------------+
5 rows in set (0.00 sec)

Lưu ý: REPLACE() thay thế tất cả lần xuất hiện trong chuỗi. Nếu chỉ muốn thay một hàng cụ thể, thêm WHERE Id = ....