Có thể bạn nghĩ đây là một bài viết ngu ngốc... nhưng lý do của bài viết này là ngừng việc quên cú pháp và phải Google để tìm thấy vị trí chính xác của các tham số trong lệnh MySQL REPLACE. Có khi nào bạn đã dùng Google nhưng vẫn kết thúc trang tài liệu với lệnh REPLACE khác của MySQL... được sử dụng để cập nhật hàng trong bảng, có cùng một cú pháp với lệnh INSERT không? Vâng, cảm ơn vì đã tạo ra sự nhầm lẫn đó, MySQL!

Hãy thử tưởng tượng tình huống thế này nhé, bạn phải cố gắng tìm kiếm và thay thế trên cơ sở dữ liệu WordPress của mình với một truy vấn đơn giản là chuyển trang web (Quantrimang.com chẳng hạn) sang HTTPS, bạn có hàng tấn các liên kết và hình ảnh trỏ về HTTP, vì thế phải cập nhật tất cả các link <img src=”http://www.quantrimang.com/”> sang <img src=”https://www.quantrimang.com/”> với gần 20.000 bản ghi trong cơ sở dữ liệu, và có thể cần thuê đến 100 thực tập sinh để làm điều đó... Hoặc chỉ cần dùng đến một câu lệnh SQL.

Vì vậy, bây giờ, bài viết này sẽ nhắc lại chính xác cú pháp để thay thế một chuỗi bằng cách sử dụng truy vấn MySQL, để bạn không phải thuê 100 thực tập sinh nữa nhé:

UPDATE tên_bảng set tên_cột=REPLACE(tên_cột,'chuỗi_cần_tìm',''chuỗi_thay_thế');

Quay trở lại với ví dụ trên, chúng ta cần cập nhật tất cả các liên kết và hình ảnh sang HTTPS trong WordPress:

UPDATE wp_posts set post_content = REPLACE(post_content, 'http://www.quantrimang.com','https://wwwquantrimang.com');

Nếu là một người mới dùng MySQL, bạn không biết làm sao để mở dấu nhắc lệnh MySQL, ồ, bạn có lẽ không nên đọc bài viết này. Hoặc là mở terminal, sử dụng các giá trị trong wp-config.php (giả sử bạn đang sử dụng WordPress) để kết nối với cơ sở dữ liệu và rồi dán câu lệnh SQL vào đó.

mysql -uUser -pPassword -hHost databasename

Hãy nhớ sao lưu dữ liệu trước khi chạy lệnh nhé, nếu có thể hãy test nó trong môi trường thử nghiệm trước, vì bạn chuẩn bị làm thay đổi một phần lớn cơ sở dữ liệu đó. Đừng để mình biến thành một anh chàng ngốc khi câu lệnh kết thúc nhé!

Bài viết cùng chuyên mục