จากการอ่าน ไม้ยมก ( ๆ ) ตามท่านราชบัณฑิตยสภา มาต้องการที่จะ 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 ตัว ตามเงื่อนไข
อ่านเพิ่มเติม