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

Tìm và thay thế chuỗi trong MySQL cho giá trị cụ thể

Cú pháp REPLACE() trong UPDATE

UPDATE bang 
SET cot = REPLACE(cot, 'gia_tri_cu', 'gia_tri_moi') 
WHERE dieu_kien;

Ví dụ: Thay 'Maxwell' thành 'Chris' chỉ cho bản ghi có tên Maxwell

Dữ liệu ban đầu

+----+------------------+
| Id | StudentFirstName |
+----+------------------+
| 1  | Carol            |
| 2  | David            |
| 3  | Bob              |
| 4  | Sam              |
| 5  | Mike             |
| 6  | Maxwell          |
+----+------------------+

Truy vấn

mysql> UPDATE findAndReplaceDemo 
    -> SET StudentFirstName = REPLACE(StudentFirstName, 'Maxwell', 'Chris') 
    -> WHERE StudentFirstName = 'Maxwell';

Kết quả

+----+------------------+
| Id | StudentFirstName |
+----+------------------+
| 1  | Carol            |
| 2  | David            |
| 3  | Bob              |
| 4  | Sam              |
| 5  | Mike             |
| 6  | Chris            |
+----+------------------+

Tại sao cần WHERE?

  • Hiệu năng: Chỉ quét/update các dòng cần thiết
  • An toàn: Tránh thay thế nhầm các giá trị chứa chuỗi con (ví dụ: 'Maxwellian' cũng bị thay)
  • Tránh trigger chạy không cần thiết

REPLACE() vs REPLACE INTO

REPLACE() functionREPLACE INTO statement
Thay chuỗi con trong cộtINSERT hoặc UPDATE toàn bộ dòng (theo PK/UK)
Dùng trong SELECT/UPDATEDùng thay cho INSERT

Lưu ý: REPLACE() phân biệt chữ hoa/thường. Dùng LOWER() hoặc COLLATE nếu cần không phân biệt.