Để thay thế chuỗi & (HTML entity của dấu &) thành ký tự & thực sự trong MySQL, bạn dùng hàm REPLACE() trong câu lệnh UPDATE.
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value varchar(100)
);
Chèn dữ liệu (có chứa '&'):
mysql> insert into DemoTable(Value) values('@amp');
mysql> insert into DemoTable(Value) values('&');
mysql> insert into DemoTable(Value) values('#amp');
Hiển thị dữ liệu:
mysql> select * from DemoTable;
Kết quả:
+----+-------+ | Id | Value | +----+-------+ | 1 | @amp | | 2 | & | | 3 | #amp | +----+-------+
Cập nhật thay thế & → &
mysql> update DemoTable set Value=replace(Value,'&','&');
Kết quả:
Query OK, 1 row affected (0.56 sec) Rows matched: 3 Changed: 1 Warnings: 0
Kiểm tra lại:
mysql> select * from DemoTable;
Kết quả:
+----+-------+ | Id | Value | +----+-------+ | 1 | @amp | | 2 | & | | 3 | #amp | +----+-------+
Giải thích:
REPLACE(Value, '&', '&'): Tìm chuỗi '&' trong cột Value, thay bằng '&'- Chỉ 1 hàng bị thay đổi (Rows matched: 3, Changed: 1)
- Các giá trị '@amp', '#amp' không chứa '&' → không đổi
Lưu ý: Trong SQL, ký tự & không cần escape. Nếu dữ liệu chứa & thực sự (6 ký tự: &, a, m, p, ;), câu lệnh trên hoạt động đúng. Nếu dữ liệu lưu là entity HTML khác, điều chỉnh chuỗi tìm/thay tương ứng.