การติดตั้ง FreeNAS ตอนที่ 2

การ Query แบ่งตามหมวดอักษร ก - ฮ MySQL



ผมได้ไปเจอ Case Study หนึ่งในกลุ่ม ชมรมคนทำเว็บ ใน Facebook ได้ถามถึง การแบ่งกลุ่มชื่อตามหมวดอักษรภาษาไทย ซึ่งมันมีอะไรที่มากกว่านั้น

สมมุติข้อมูลเป็นแบบนี้
  • กสุมา
  • เกศริน
  • โกสุม
  • ไกยเกษี
  • ใกรธร

โดยปกติ เราก็จะใช้ " LIKE 'ก%' "

SELECT * FROM `alphabet` WHERE `NAME` LIKE 'ก%'

ผลที่ออกมาคือ มันจะออกมาแต่ กสุมา ครับ เพราะมันขึ้นต้นด้วย ก ส่วนอันอื่นมันไม่ได้ขึ้นต้นด้วย ก แล้วเราจะแก้ปัญหานี้แย่างไร

SELECT * FROM `alphabet` 
WHERE `NAME` LIKE 'ก%' OR (
`NAME` LIKE '_ก%' AND SUBSTR(`NAME`,1,1) IN ('โ', 'เ', 'แ', 'ไ', 'ใ'))
ORDER BY `NAME` ASC

  • เลือกตัวอักษรที่ขึ้นต้นด้วย ก
  • เลือกตัวอักษรที่สองเป็น ก และ ตัวแรกเป็นสระ
  • เรียงจากน้อยไปมาก หรือ เรียงลำดับตามภาษาไทย

ผลที่ออกมาก็จะได้แบบนี้ครับ ก่อน Query เรียงตามชื่อจะได้แบบนี้


หลังจาก Query แล้วจะได้แบบนี้



ความคิดเห็น