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

Thay thế dấu nháy đơn (apostrophe) trong chuỗi MySQL với REPLACE()

Dấu nháy đơn (') trong dữ liệu văn bản thường gây lỗi cú pháp SQL khi chèn/cập nhật nếu không escape đúng. Hàm REPLACE() giúp loại bỏ hoặc thay thế chúng hàng loạt trong bảng.

Tạo bảng và chèn dữ liệu có apostrophe

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Sentence VARCHAR(100)
);

mysql> INSERT INTO DemoTable (Sentence) VALUES 
('Chris\'s Father'), ('Larry\'s Mother');

Lưu ý: Trong SQL, apostrophe trong chuỗi literal phải escape bằng backslash \' hoặc gấp đôi ''.

Dữ liệu ban đầu

mysql> SELECT * FROM DemoTable;
+----+----------------+
| Id | Sentence       |
+----+----------------+
|  1 | Chris's Father |
|  2 | Larry's Mother |
+----+----------------+

Cập nhật: Xóa bỏ apostrophe (thay bằng chuỗi rỗng)

mysql> UPDATE DemoTable 
SET Sentence = REPLACE(Sentence, '\'', '');
Query OK, 2 rows affected (0.07 sec)
Rows matched: 2  Changed: 2  Warnings: 0

Kết quả sau khi thay thế

mysql> SELECT * FROM DemoTable;
+----+---------------+
| Id | Sentence      |
+----+---------------+
|  1 | Chriss Father |
|  2 | Larrys Mother |
+----+---------------+

Cú pháp REPLACE

REPLACE(column_name, 'chuỗi_cần_tìm', 'chuỗi_thay_thế')

Các trường hợp dùng khác

  • Thay thế apostrophe bằng ký tự khác: REPLACE(Sentence, '\'', '’') (dấu nháy đơn cong typographic).
  • Chuẩn hóa dữ liệu nhập từ người dùng (loại bỏ ký tự không mong muốn).
  • Kết hợp với TRIM(), REPLACE() lồng nhau để dọn dẹp chuỗi phức tạp.

Phòng tránh tốt hơn: Luôn dùng Prepared Statements (Parameterized Queries) trong ứng dụng (PDO, MySQLi, ORM) để tránh SQL Injection và lỗi escape thủ công.