collation ของ field ใน mysql ก็มีผลต่อ case-sensitive ได้

เทคนิคเกี่ยวกับการเขียนเว็บ และ Programming ที่เกี่ยวข้องครับ PHP, MySQL, ...

collation ของ field ใน mysql ก็มีผลต่อ case-sensitive ได้

โพสต์โดย admin » จันทร์ 01 ส.ค. 2011 12:46 pm

อันนี้เพิ่งเป็นข้อสังเกตเจอกับตัว คือ ปกติเราจะเปลี่ยน collation (เทียบกับ encoding ของไฟล์) เป็น utf8 เพื่อให้อ่านภาษาไทยได้ด้วยใน mysql field นั้นๆ ใช่ไหมครับ

ปัญหาที่เจอมาวันนี้คือ ก่อนหน้านี้ดันเซ็ต collation เป็น "utf8_bin" เฉยๆ (ทั้งที่ปกติควรตั้งค่าเป็น utf8_general_ci หรือ utf8_unicode_ci) ทำให้เวลาสั่งเสิร์ชด้วย syntax "SELECT ... from ... WHERE ... LIKE %...% ..." กลายเป็นอิงกับตัวตัวเล็กตัวใหญ่ (case sensitive) กรณีเป็นภาษาอังกฤษซะงั้น

เลยเป็นข้อสังเกตว่า ถ้า collation เป็น utf8_bin เวลา like ... จะอิงกับตัวเล็กตัวใหญ่แตกต่างกัน แต่ถ้าใช้เป็น utf8_general_ci หรือ utf_unicode_ci จะเสิร์ชได้ตามปกติโดยไม่จำเป็นต้องพิมพ์ตัวเล็กตัวใหญ่เปะๆ ครับ :D

เป็นข้อสังเกตจากความมั่ว ถ้าท่านใดมีเทคนิคเพิ่มเติมก็มาเล่าสู่กันฟังได้ครับผม^^
รับวางระบบร้านเนต-เกม-หอพัก Internet Cafe ติดต่อ LIEWNETWORK TEL : 082-644-1694 cycob41139@hotmail.com
ดูผลงานได้ที่ board.liewnetwork.com มีเบอร์โทรให้คุยกับลูกค้าตัวเป็นๆได้เลย
ภาพประจำตัวสมาชิก
admin
Administrator
 
โพสต์: 374
ลงทะเบียนเมื่อ: เสาร์ 17 ม.ค. 2009 1:47 pm
Has thanked: 8 times
Have thanks: 215 times

ย้อนกลับไปยัง Web Programming

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: Bing [Bot] และ บุคคลทั่วไป 2 ท่าน


cron