Đôi lúc có một vấn đề gì đó mà cơ sở dữ liệu của bạn cần phải được thay thế toàn bộ một từ, cụm từ, … chuỗi – string bằng một chuỗi khác. Ví dụ blog này của mình được cài ở localhost, địa chỉ blog lúc ở localhost là http://trieu/, sau đó chuyển tất cả các bài viết ở blog cũ sang, và như thế toàn bộ các đường dẫn tới ảnh trên blog đều là http://trieu/wp-content/uploads/…jpg. Và như vậy sẽ không thể xem nổi hình trong một bài nào khi đưa nó lên mạng. Và giải pháp ở đây chính là thay thế toàn bộ chuỗi “http://trieu/” bằng chuỗi “http://tientrieu.net/”. Tuy nhiên phpMyAdmin, công cụ thường được sử dụng nhất để biên tập MySQL lại không có search and replace, chỉ có search thôi.
Vấn đề rất đơn giản, sử dụng hàm replace trong MySQL sẽ giải quyết được, trong phpMyAdmin bạn chọn chức năng Query MySQL để thực hiện chạy câu lệnh MySQL của bạn:
Và viết một câu lệnh với cấu trúc sau:
UPDATE tablename SET tablefield = replace(tablefield,”findstring”,”replacestring”);
Giải thích: Câu lệnh trên mang nghĩa cập nhật nội dung của trường tablefield trong bảng tablename với nội dung mới là nội dung cũ đã được thay thế toàn bộ các từ findstring bằng từ replacestring.
Ví dụ: Trong trường hợp xử lý bài viết trong blog wordpress này sẽ là:
UPDATE wp_posts SET post_content = replace(post_content,”http://trieu/”,”http://tientrieu.net/”);
Trong ví dụ trên:
Tên bảng là wp_posts, tên trường cần cập nhật nội dung bên trong là post_content, nội dung cần tìm kiếm là http://trieu/, nội dung cần thay thế là http://tientrieu.net/
Chúc các bạn thành công.
Giả sử giờ database có khoảng 100 bảng và giờ muốn replace 1 chuỗi trên 100 bảng kia thì phải viết 100 cái query à @-)
Ừ, cách này thì không nhanh. Có một cách nhanh hơn là Export toàn bộ database ra text file rồi sử dụng chức năng Search and Replace của trình soạn thảo text rồi sau đó lại Import lại database :”>
Nói chung là cũng tùy từng trường hợp thôi, chứ database nó mà tầm vài chục GB thì có mà mở được :-s