String REPLACE() trong UPDATE MySQL

String REPLACE() trong UPDATE MySQL
String REPLACE() trong UPDATE MySQL

Chức năng của String REPLACE() trong UPDATE MySQL

String REPLACE() trong UPDATE MySQL dùng để cập nhật một chuỗi string nhỏ trong một cột thành một chuỗi string khác bằng hàm REPLACE() trong lệnh UPDATE.

Code String REPLACE() trong UPDATE MySQL

Cú pháp:

UPDATE tb_nhanvien SET noidung = REPLACE (noidung, 'Công Ty Tnhh Thương Mại Dịch
 Vụ Web Mới', 'Web Mới') WHERE id>0;

Công Ty Tnhh Thương Mại Dịch Vụ Web Mới: là giá trị cũ cần bỏ.

Web Mới: là giá trị cần thay vào.

noidung: là cột cần cập nhật.

<?php
   $dbhost = 'localhost';
   $dbuser = 'webmoi_userdata'; // Tên username
   $dbpass = 'xgZwEfQWE'; // Mật khẩu
   // Kết nối đến tên username
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn ){
     die('Không kết nối được: ' . mysql_error());
   }
   // Chọn tên database
   mysql_select_db('webmoi_tendata');
   // Xét kiểu tiếng việt 
   mysql_query('SET NAMES "utf8"');
   // Xem cột noidung trước khi REPLACE()
   echo "<b>Xem cột noidung trước khi REPLACE()</b><br>";
   $sql = "select noidung,ten,msnv from tb_nhanvien ";
   // Kết quả truy vấn trả về mảng
   $ketqua = mysql_query($sql,$conn);
   if(!$ketqua){
	  die('Không thể lấy dữ liệu: ' . mysql_error());  
   }
   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
   while($row = mysql_fetch_array($ketqua, MYSQL_ASSOC)){
		 echo "ten: {$row['ten']} <br> ".
         "msnv : {$row['msnv']} <br> ".
         "noidung : {$row['noidung']} <br> ".
         "--------------------------------<br>";
   }		 
   // String REPLACE() một cột của toàn bộ bảng trong UPDATE MySQL
   echo "<b>String REPLACE() một cột của toàn bộ bảng trong UPDATE MySQL</b><br>";
   $sql = "UPDATE tb_nhanvien SET noidung = REPLACE (noidung, 'Công Ty Tnhh Thương Mại Dịch Vụ Web Mới', 'Web Mới') WHERE id>0";
   $ketquahai = mysql_query($sql,$conn);
   if(!$ketquahai){
	  die('Không thể REPLACE() dữ liệu: ' . mysql_error());  
   }else{
	   echo "Đã REPLACE() Công Ty Tnhh Thương Mại Dịch Vụ Web Mới thành Web Mới thành công!<br>";
   }
   //Xem lại cột nội dung sau khi String REPLACE()
   echo "<b>Xem lại cột nội dung sau khi String REPLACE()</b><br>";
   $sql = "select noidung,ten,msnv from tb_nhanvien ";
   // Kết quả truy vấn trả về mảng
   $ketquaba = mysql_query($sql,$conn);
   if(!$ketquaba){
	  die('Không thể lấy dữ liệu: ' . mysql_error());  
   }
   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
   while($row = mysql_fetch_array($ketquaba, MYSQL_ASSOC)){
		 echo "ten: {$row['ten']} <br> ".
         "msnv : {$row['msnv']} <br> ".
         "noidung : {$row['noidung']} <br> ".
         "--------------------------------<br>";
   }		 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

Xem cột noidung trước khi REPLACE()
ten: Trần Thị Vân
msnv : pkd0609nu
noidung : Công Ty Tnhh Thương Mại Dịch Vụ Web Mới xin chào quý khách
--------------------------------
ten: Nguyễn Thùy Dung
msnv : pkd2910nu
noidung : Công Ty Tnhh Thương Mại Dịch Vụ Web Mới xin chào quý khách
--------------------------------
ten: Bùi Tấn Lực
msnv : pkt2702nam
noidung : Công Ty Tnhh Thương Mại Dịch Vụ Web Mới xin chào quý khách
--------------------------------
String REPLACE() một cột của toàn bộ bảng trong UPDATE MySQL
Đã REPLACE() Công Ty Tnhh Thương Mại Dịch Vụ Web Mới thành Web Mới thành công!
Xem lại cột nội dung sau khi String REPLACE()
ten: Trần Thị Vân
msnv : pkd0609nu
noidung : Web Mới xin chào quý khách
--------------------------------
ten: Nguyễn Thùy Dung
msnv : pkd2910nu
noidung : Web Mới xin chào quý khách
--------------------------------
ten: Bùi Tấn Lực
msnv : pkt2702nam
noidung : Web Mới xin chào quý khách
--------------------------------

Khi lưu trong MySQL thì chữ "Công Ty Tnhh Thương Mại Dịch Vụ Web Mới" có thể được định dạng bằng ký tự khác, cho nên bạn phải vô thẳng MySQL để xem chữ "Công Ty Tnhh Thương Mại Dịch Vụ Web Mới" đã đỗi thành những ký tự nào, sau đó bạn copy đoạn chữ đó bỏ vào thì mới update REPLACE() được.

Lưu Ý Khi Dùng REPLACE() Trong UPDATE MySQL

Kết hợp REPLACE() với UPDATE giúp thay thế nội dung trực tiếp trong dữ liệu MySQL, nhưng cần kiểm tra kỹ trước khi thực hiện. Chỉ một điều kiện WHERE chưa chính xác cũng có thể khiến nhiều bản ghi bị thay đổi ngoài dự kiến.

Kiểm Tra Dữ Liệu Trước Khi Thực Hiện UPDATE

Trước khi cập nhật, nên dùng SELECT để xác định chính xác những bản ghi sẽ bị tác động. Cách này giúp kiểm tra nội dung cũ và tránh thay thế nhầm dữ liệu.

SELECT id, content
FROM posts
WHERE content LIKE '%old-text%';

Nếu kết quả đúng với phạm vi cần thay đổi, bạn mới thực hiện câu lệnh UPDATE. Đây là bước đơn giản nhưng đặc biệt hữu ích khi bảng có nhiều dữ liệu.

Giới Hạn Phạm Vi Dữ Liệu Cần Thay Thế

Không nên sử dụng UPDATE kết hợp REPLACE() mà bỏ qua điều kiện lọc nếu chỉ muốn thay đổi một nhóm bản ghi. Điều kiện WHERE cần xác định rõ đối tượng cần cập nhật.

UPDATE posts
SET content = REPLACE(content, 'old-text', 'new-text')
WHERE status = 'published';

Nếu chỉ muốn cập nhật một bản ghi cụ thể, có thể lọc theo id. Phạm vi càng rõ ràng thì khả năng thay đổi nhầm dữ liệu càng thấp.

Kiểm Tra Kết Quả Sau Khi REPLACE()

Sau khi thực hiện cập nhật, nên kiểm tra lại dữ liệu để chắc chắn nội dung đã được thay thế đúng. Có thể tìm lại chuỗi cũ và chuỗi mới trong những bản ghi vừa cập nhật.

SELECT id, content
FROM posts
WHERE content LIKE '%new-text%';

Nếu thao tác được thực hiện trên dữ liệu quan trọng hoặc số lượng bản ghi lớn, nên sao lưu dữ liệu trước khi cập nhật. Việc kiểm tra trước và sau khi chạy UPDATE giúp hạn chế đáng kể nguy cơ mất hoặc thay đổi sai dữ liệu.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết String REPLACE() trong UPDATE MySQL.

Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về String REPLACE() trong UPDATE MySQL
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !