จากการอ่าน ไม้ยมก ( ๆ ) ตามท่านราชบัณฑิตยสภา มาต้องการที่จะ update บทความให้ WordPress ทั้งหมดโดย
การจะทำให้มี Space 1 ข้างหน้า และ 1 ข้างหลัง เท่านั้น (ไม่มากไม่น้อย) ด้วย SQL นั้นมีความซับซ้อนเล็กน้อย เพราะต้องจัดการทั้งกรณีที่ไม่มีวรรค และกรณีที่มีวรรคเกิน
วิธีที่มั่นใจที่สุดคือ
- เติมวรรคเข้าไปก่อนแล้ว
- ลบวรรคที่ซ้ำซ้อนออก
คำสั่ง SQL (Update)
คำสั่งนี้จะทำการ
- เปลี่ยน
ๆเป็นๆ(เติมวรรคทุกตัว) - แทนที่ (วรรคคู่) เป็น (วรรคเดี่ยว) 2 รอบ เพื่อจัดการกรณีที่มีวรรคเกินมากกว่า 2 ตัว
UPDATE wp_posts SET post_content = REPLACE (REPLACE (REPLACE (post_content, ' ๆ ', ' ๆ ') , ' ', ' ') , ' ', ' ') WHERE post_content LIKE '% ๆ %';
คำอธิบายการทำงาน
REPLACE (..., ' ๆ ', ' ๆ '): เติมวรรคหน้า-หลัง ให้ทุกตัวที่เจอ (กรณีเดิมมีวรรคอยู่แล้ว จะกลายเป็นวรรคคู่)REPLACE (..., ' ', ' ')(รอบที่ 1) : เก็บกวาดวรรคคู่ที่เกิดจากการเติม หรือวรรคคู่เดิมที่มีอยู่แล้วREPLACE (..., ' ', ' ')(รอบที่ 2) : ทำซ้ำอีกครั้งเพื่อกรณีที่มีวรรค 3 ตัวขึ้นไป (3 วรรค -> 2 วรรค -> 1 วรรค)
✅ ตรวจสอบผลลัพธ์
หลังจากอัปเดต ให้รันคำสั่งนี้เพื่อเช็คว่ายังมีการจัดวรรคผิดรูปแบบเหลืออยู่หรือไม่
-- เช็คว่ามี ' ๆ ' ที่ไม่มีวรรคหน้าหรือหลังเหลืออยู่ไหม (ควรได้ 0) SELECT ID, post_title FROM wp_posts WHERE post_content REGEXP '[^ ] ๆ | ๆ [^ ]';
(หมายเหตุ: คำสั่ง REGEXP ใช้ตรวจสอบรูปแบบที่ซับซ้อน หากฐานข้อมูลเวอร์ชันเก่าอาจไม่รองรับ) หรือเช็คนับจำนวนอย่างง่าย
SELECT COUNT (*) FROM wp_posts WHERE post_content LIKE '% ๆ %' AND post_content NOT LIKE '% ๆ %';
หากได้ผลลัพธ์เป็น 0 แสดงว่าสำเร็จ
⚠️ ข้อควรระวังเพิ่มเติม
- วรรค ๆ : คำสั่งนี้มีการลบ วรรคคู่ (Double Space) ทั้งหมดในบทความ ไม่ใช่แค่รอบตัว
ๆซึ่งโดยปกติเป็นผลดีต่อการจัดรูปแบบเว็บอยู่แล้ว - ขึ้นต้น / จบประโยค: หาก
ๆอยู่ตัวแรกสุดของบทความ จะมีวรรคนำหน้า 1 ตัว หากอยู่ตัวสุดท้ายจะมีวรรคตามหลัง 1 ตัว ตามเงื่อนไข
อ่านเพิ่มเติม