ป้ายกำกับ: เครื่องหมายวงเล็บ

เทคนิคใช้ SQL ปรับฟอร์แมต “วงเล็บ (นขลิขิต)” ให้ถูกต้องตามมาตรฐานราชบัณฑิตยสภาเทคนิคใช้ SQL ปรับฟอร์แมต “วงเล็บ (นขลิขิต)” ให้ถูกต้องตามมาตรฐานราชบัณฑิตยสภา

ในการเขียนบทความหรือจัดการเนื้อหา (Content Management) บนเว็บไซต์ ปัญหาหนึ่งที่คนทำเว็บและ Editor มักจะเจอบ่อยๆ คือ “ความไม่เป็นระเบียบของการเว้นวรรคช่องว่างรอบเครื่องหมายวงเล็บ” บางบทความเคาะเว้นวรรคข้างใน บางบทความพิมพ์ติดกันเป็นพืด ซึ่งนอกจากจะดูไม่สวยงามแล้ว ยังไม่ถูกต้องตามหลักเกณฑ์ของสำนักงานราชบัณฑิตยสภาอีกด้วย

บทความนี้จะพาไปดู “หลักการใช้นขลิขิต (วงเล็บ)” ที่ถูกต้อง พร้อมแจกสคริปต์ SQL (รองรับ MySQL 8.0+ และ MariaDB 10.0.5+) เพื่อให้คุณสามารถสั่ง Update เคลียร์ข้อมูลทั้ง Database ให้สวยงามและได้มาตรฐานในคำสั่งเดียวครับ


💡 หลักการใช้นขลิขิต (วงเล็บ) ตามมาตรฐานราชบัณฑิตยสภา

อ้างอิงจากหลักเกณฑ์การใช้เครื่องหมายวรรคตอนของราชบัณฑิตยสภา การจัดวางตำแหน่งช่องว่าง (Space) ของเครื่องหมายวงเล็บ มีกฎเหล็กสำคัญดังนี้

  • ก่อนเปิดวงเล็บ ( : ให้เคาะเว้นวรรค ๑ ครั้ง
  • หลังปิดวงเล็บ ) : ให้เคาะเว้นวรรค ๑ ครั้ง (ยกเว้นกรณีอยู่ท้ายประโยคแล้วตามด้วยเครื่องหมายวรรคตอนอื่น)
  • ข้อความภายในวงเล็บ ( ... ) : ไม่ต้องเคาะเว้นวรรค ข้อความต้องเขียนติดกับวงเล็บเปิดและปิดทันที

ตัวอย่างการใช้งานจริง

  1. การใช้นขลิขิตเพื่ออธิบายหรือขยายความ: ใช้ครอบข้อความที่ทำหน้าที่อธิบายคำศัพท์ หรือบอกที่มา
    • แบบที่ผิด: ท่านเดินทางไปปฏิบัติภารกิจที่กรุงลอนดอน(London )ประเทศอังกฤษ
    • แบบที่ถูกต้อง: ท่านเดินทางไปปฏิบัติภารกิจที่กรุงลอนดอน (London) ประเทศอังกฤษ
  2. การใช้นขลิขิตสำหรับตัวเลขหรือคำอ่าน: ใช้ระบุจำนวนเงิน วันเดือนปี เพื่อป้องกันการตีความผิด
    • แบบที่ผิด: มอบเงินสนับสนุนจำนวน ๕,๐๐0 บาท( ห้าพันบาทถ้วน )
    • แบบที่ถูกต้อง: มอบเงินสนับสนุนจำนวน ๕,๐๐0 บาท (ห้าพันบาทถ้วน)
  3. การจัดทำเชิงอรรถและการอ้างอิง: * ❌ แบบที่ผิด: การสื่อสารในยุคดิจิทัลมีความซับซ้อน (Smith, 2023)
    • แบบที่ถูกต้อง: การสื่อสารในยุคดิจิทัลมีความซับซ้อน (Smith, 2023)

🛠️ แปลงร่างกฎราชบัณฑิตยสภา ให้เป็นสคริปต์ SQL (Regex)

ในฐานะนักพัฒนาระบบ เราคงไม่สามารถไปนั่งไล่แก้บทความทีละหน้าได้ หากเว็บมีบทความเป็นพันๆ เรื่อง การใช้พลังของ Regular Expression (Regex) ร่วมกับคำสั่ง UPDATE ใน SQL คือคำตอบที่ดีที่สุด

สคริปต์นี้จะล้างช่องว่างที่ผิดพลาดภายในวงเล็บออก และจัดระยะห่างภายนอก (หน้า-หลัง) ให้เหลือเว้นวรรคเพียง 1 ช่องโดยอัตโนมัติ

⚠️ ข้อควรระวัง: ก่อนรันคำสั่ง SQL ที่มีผลต่อข้อมูลเป็นวงกว้าง ควรทำการ Backup (Snapshot) ตารางข้อมูล เช่น wp_posts ไว้ก่อนเสมอเพื่อความปลอดภัย

UPDATE `wp_posts`
SET `post_content` = REGEXP_REPLACE(
    REGEXP_REPLACE(
        REGEXP_REPLACE(
            REGEXP_REPLACE(
                `post_content`, 
                '\\s*\\(\\s*', ' ('       -- Step 1: เคลียร์ช่องว่างรอบวงเล็บเปิด ให้เหลือช่องว่างด้านหน้า 1 ช่อง และข้างในชิด
            ),
            '\\s*\\)\\s*', ') '           -- Step 2: เคลียร์ช่องว่างรอบวงเล็บปิด ให้ข้างในชิด และเหลือช่องว่างด้านหลัง 1 ช่อง
        ),
        '  +', ' '                        -- Step 3: เคลียร์กรณีเกิด Double Space (ช่องว่างเบิ้ล) จากการสั่งคำสั่งด้านบน
    ),
    ' +\\)', ')'                          -- Step 4: ดักเก็บตก เผื่อมีช่องว่างหลงเหลือหน้าวงเล็บปิด
)
WHERE `post_content` REGEXP '\\(|\\)';

คำอธิบายการทำงานของสคริปต์ (Pipeline Logic)

  1. '\\s*\\(\\s*', ' (' : ค้นหาวงเล็บเปิด ( ที่อาจจะมีช่องว่างข้างหน้าหรือข้างหลังกี่ช่องก็ตาม ยุบรวมให้เหลือเพียงช่องว่าง 1 ช่องก่อนหน้าตัววงเล็บเปิดเท่านั้น ผลลัพธ์คือข้อความด้านในจะมาชนขอบวงเล็บทันที เช่น คำ ( ข้อความ ➡️ คำ (ข้อความ
  2. '\\s*\\)\\s*', ') ' : ค้นหาวงเล็บปิด ) แล้วยุบช่องว่างด้านในให้ข้อความมาชนวงเล็บ และบังคับให้เว้นวรรคด้านหลัง 1 ช่องเสมอ เช่น ข้อความ ) คำ ➡️ ข้อความ) คำ
  3. ' +', ' ' : ยุบช่องว่างที่อาจจะเกิดการซ้อนกันเกิน 1 ช่อง (Double Space) ให้กลับมาเหลือช่องว่างเดี่ยวตามมาตรฐาน
  4. WHERE ... REGEXP '\\(|\\)' : เลือกดึงเฉพาะแถวที่มีเครื่องหมายวงเล็บอยู่ในเนื้อหาเท่านั้น เพื่อไม่ให้ระบบต้องประมวลผลฟรีกับแถวที่ไม่มีวงเล็บ เป็นการ Optimize Performance ของ Database

🎯 สรุปผลลัพธ์หลังการรันระบบ

เมื่อรันสคริปต์นี้เสร็จสิ้น ข้อมูลบทความทั้งหมดในระบบจะถูกจัดฟอร์แมตใหม่ให้อยู่ในมาตรฐานเดียวกันทันที

ข้อมูลดิบใน Database (ก่อนแก้)ผลลัพธ์หลังรัน SQL (ตามมาตรฐานราชบัณฑิตฯ)
กรุงลอนดอน(London )ประเทศอังกฤษกรุงลอนดอน (London) ประเทศอังกฤษ
จำนวนเงิน ๕,๐๐๐ บาท ( ห้าพันบาทถ้วน )จำนวนเงิน ๕,๐๐๐ บาท (ห้าพันบาทถ้วน)
ยุคดิจิทัลมีความซับซ้อน( Smith, 2023 )ยุคดิจิทัลมีความซับซ้อน (Smith, 2023)

การนำ SQL เข้ามาประยุกต์ใช้ร่วมกับหลักเกณฑ์ทางภาษา ไม่เพียงแต่ช่วยให้งานเขียนบนเว็บไซต์ดูเป็นมืออาชีพ มีมาตรฐานที่ถูกต้องตามที่ราชบัณฑิตยสภากำหนด แต่ยังช่วยประหยัดเวลาของ Content Editor และดูแล Data Integrity ของระบบสารสนเทศในองค์กรได้อย่างมีประสิทธิภาพอีกด้วยครับ


อ่านเพิ่มเติม