Tôi đang cố gắng để đạt được phân loại giọng và phân biệt chữ hoa chữ thường trong MySQL. Theo các hướng dẫn trong sách hướng dẫn, điều này có nghĩa là phải làm việc với bộ ký tự utf8 và đối chiếu utf8_general_ci.Phân loại không nhạy cảm trong MySQL
Khi tôi làm theo tấm gương trong cuốn hướng dẫn (http://dev.mysql.com/doc/refman/5.1/en/charset-collation-implementations.html) dưới "Collations cho ký tự Unicode đa byte bộ" Tôi không nhận được kết quả tương tự:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 679877
Server version: 5.1.41-log MySQL Community Server (GPL) by Remi
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á';
+-----------+-----------+-----------+
| 'a' = 'A' | 'a' = 'À' | 'a' = 'á' |
+-----------+-----------+-----------+
| 1 | 0 | 0 |
+-----------+-----------+-----------+
1 row in set (0.00 sec)
mysql>
Trong ví dụ trong cuốn hướng dẫn, đó là tất cả 1.
Nó cũng không xử lý các ký tự có dấu như nhau khi tôi cố gắng đặt collation trực tiếp trong truy vấn. Trong ví dụ này, bảng đang sử dụng latin1 và tôi đang chuyển đổi thành utf8.
mysql> select * from test;
+----------+
| k |
+----------+
| Cárdenas |
| Cardozo |
| Corbin |
| Cabrero |
+----------+
mysql> select k from test order by convert(k using utf8) collate utf8_general_ci
;
+----------+
| k |
+----------+
| Cabrero |
| Cardozo |
| Corbin |
| Cárdenas |
+----------+
4 rows in set (0.00 sec)
Nên bỏ qua dấu 'a' trong mục nhập cuối cùng và sắp xếp thứ hai. Bất kỳ ý tưởng những gì tôi đang làm sai?
bạn vui lòng thêm vào câu hỏi của bạn đầu ra từ 'hiển thị các cột ĐẦY ĐỦ TỪ kiểm tra;' –
tôi nhận được tất cả 1 cho chọn, vì vậy phải có một cái gì đó sai với collations của bạn trong MySQL. –
Bàn điều khiển có phải bạn đang nhập tất cả các kiểm tra này được định cấu hình để xử lý đầu vào bàn phím như UTF-8 không? –