
Code SQL xoá các bài viết tiếng Anh
Khi khách hàng book gói xử lý mã độc cho các website, rất nhiều case tôi gặp phải đó là WordPress bị hack và đăng rất nhiều bài viết tiếng Anh lẫn lộn vào trong bài viết chính chủ trong website, nhiều khi số lượng lên đến 10k mà rất khó lọc ra bài viết nào tiếng Việt và tiếng Anh.
Trong quá trình làm việc đây là đoạn code SQL xoá các bài viết tiếng Anh nhanh chóng và chính xác, team chúng tôi share code này hy vọng chúng sẽ giúp ích cho nhiều người.
Luôn sao lưu database trước khi thực hiện
Kiểm tra kỹ trước khi thực thi
UPDATE `vutruso-db`.`5vn_posts` SET post_status = 'draft' WHERE post_type = 'post' AND post_status = 'publish' AND ( ( LENGTH(post_title) - LENGTH(REPLACE(post_title, ' ', '')) + 1 <= 5 AND LENGTH(REPLACE(post_title, ' ', '')) = LENGTH(REGEXP_REPLACE(post_title, '[^a-zA-Z]', '')) ) OR ( LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', '')) + 1 <= 20 AND LENGTH(REPLACE(post_content, ' ', '')) = LENGTH(REGEXP_REPLACE(post_content, '[^a-zA-Z]', '')) ) );
Code này có ý nghĩa sau:
- Cập nhật bảng
5vn_posts
trong cơ sở dữ liệuvutruso-db
(đây là bảng lưu trữ bài viết trong WordPress, với tiền tố5vn_
thay vìwp_
mặc định) - Đổi trạng thái bài viết từ “publish” (đã xuất bản) thành “draft” (bản nháp)
- Chỉ áp dụng cho các bài viết thỏa mãn các điều kiện:
- Là bài viết thông thường (
post_type = 'post'
) - Đang ở trạng thái xuất bản (
post_status = 'publish'
) - Và thỏa mãn một trong hai điều kiện sau: a) Tiêu đề bài viết có tối đa 5 từ VÀ chỉ chứa các ký tự chữ cái (không có số hoặc ký tự đặc biệt) b) Nội dung bài viết có tối đa 20 từ VÀ chỉ chứa các ký tự chữ cái
- Là bài viết thông thường (
Bạn có thể vào phần posts xem các bản nháp nếu đã xoá đúng yêu cầu thì có thể chạy lệnh sau để xoá toàn bộ các bài viết trong nháp
DELETE FROM `vutruso-db`.`5vn_posts` WHERE post_type = 'post' AND post_status = 'draft';
Cảm ơn đã ghé thăm Vũ Trụ Số.
Theo dõi chúng tôi trên Facebook và X để cập nhật nhiều mẹo hay.