Hướng dẫn collate trong mysql - đối chiếu trong mysql
Một character set là một tập hợp các ký tự và các phương thức chuyển mã ký tự (encoding). Còn một collation là một tập hợp các qui tắc để so sánh hai ký tự trong một tập hợp ký tự. Giả sử ta có 4 chữ cái Show Bạn có thể thấy mỗi ngôn ngữ khác nhau sẽ có những tập hợp các ký tự khác nhau, cùng là bản chữ cái latin nhưng tiếng Việt lại có thêm nhiều ký tự mà các ngôn ngữ dùng chữ latin khác không có chẳng hạn như chữ 1, 2, 3, 4, 5, 6. Và có rất nhiều kiểu chuyển mã (encode) tiếng Việt khác nhau ngoài Unicode ra như 7, 8 hay 9. Do vậy không thể dùng font VNI mà gõ theo kiểu gõ Unicode được, vì bộ gõ sẽ ánh xạ sai mã và ký tự tương ứng.Trong MySQL thì ta có thể lưu trữ dữ liệu ở nhiều dạng character set khác nhau ở các mức độ khác nhau như server, database, table và column. Mỗi character set có một collation mặc định của nó. Ví dụ trong MySQL, character set latin1 (West European Character Sets) là character set mặc định và collation
Theo qui tắc đặt tên collation của mysql, thì
Trong MySQL, có 2 dạng dữ liệu kiểu string đó là nonbinary string ( Nên dùng utf8_general_ci hay utf8_unicode_ci?Theo tài liệu của MySQL thì các thao tác sử dụng Ví dụ: ta có 1 trong bảng dictionary(id, word) có 2 dòng như sau:
Khi ta thực hiện câu query sau, thì chỉ có 1 kết quả
Tuy nhiên, nếu ta chỉ định
thì có có cả hai kết quả trên trả về, ta thấy ở Ngoài ra nó còn hỗ trợ các cách viết rút gọn (contraction) và các ký tự có thể bỏ qua (ignorable character). Theo một số câu trả lời trên stackoverflow thì 2, 1,a ,B 7,B 8 đều tương đương với A khi sắp xếp và tìm kiếm, nhưng điều này cũng tương tự với B 0.Ignorable character là những ký tự không nhìn thấy được nhưng có tác dụng trong định dạng văn bản. Ví dụ như soft hyphen là một ký tự tương tự dấu “-“ nhưng không nhìn thấy được và nó được sử dụng khi một từ quá dài phải xuống dòng. là những ký tự không nhìn thấy được nhưng có tác dụng trong định dạng văn bản. Ví dụ như soft hyphen là một ký tự tương tự dấu “-“ nhưng không nhìn thấy được và nó được sử dụng khi một từ quá dài phải xuống dòng. Xem thêm Soft Hyphen – A New URL Obfuscation Technique Unicode dựng sẵn hay tổ hợp 2Phần này không liên quan tới MySQL, nhưng cũng là một điểm nên lưu ý với người lập trình. Đối với unicode dựng sẵn, mỗi ký tự ta nhìn thấy chỉ bao gồm một mã duy nhất (ví dụ Ví dụ Đối với unicode dựng sẵn References:
Footnotes: |