วันอาทิตย์ที่ 16 มกราคม พ.ศ. 2554

Query ข้อมูลภาษาไทยใน ms sql 2008 อย่างไรให้เจอข้อมูลที่มีสระ

เนื่องจากคอมพิวเตอร์ถูกออกแบบมาให้มองทีละ ตัวอักษร ทำความเข้าใจในสิ่งที่ SQL Command ทำงานกันก่อนนะครับ
ตัวอย่าง Like "ล%" >>> อะไรก็ได้ที่ตัวอักษรที่ 1 เป็น "ล" ดังนัน "เลย" จึงไม่เข้าไปอยู่ในเงื่อนไขนี้เพราะมี สระ "เ"
มาเป็นตัวอักษรตัวแรก เนื่อง่จากภาษาไทย ไม่ได้อยู่ใน คำสั่งที่ SQL จะดึงออกมาให้ได้อย่างที่มันควรจะเป็น

เราจึงต้องคิดนอกกรอบซักนิดนึง

ตัวอย่าง
where Subject like '_ล%' and Left(Subject,1) in ('เ','โ','ไ','ใ') <<< ต้องใส่สระที่นำหน้าทั้งหมด


หมายเหตุ : _ หมายถึง อะไรก็ได้ที่นำหน้า "" แต่ จะต้องเป็นสระ ที่สามารถอยู่หน้า เท่านัน

แค่นี้ เราก็ได้ในสิ่งที่อยากได้กันแล้ว

credit:http://www.narisa.com


ปล. ถ้า http://java-thai-talk.blogspot.com ทำการทดสอบ แล้วจะมาแสดงให้ท่านได้เห็นกัน
ปัญหานี้ผมเจอตอนที่ทำ Grails ครับ แก้ปัญหาคล้ายๆ วิธีนี้นี่ละ ครับ