เนื่องจากคอมพิวเตอร์ถูกออกแบบมาให้มองทีละ ตัวอักษร ทำความเข้าใจในสิ่งที่ 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 ครับ แก้ปัญหาคล้ายๆ วิธีนี้นี่ละ ครับ