Tôi muốn để có thể làm các truy vấn mà bình thường có dấu ký tự, do đó ví dụ:bình thường có dấu nhân vật trong MySQL truy vấn
é, è, and ê
đều coi là 'e', trong các truy vấn sử dụng '=' và thích'. Tôi có một hàng có trường tên người dùng được đặt thành 'rené' và tôi muốn có thể đối sánh trên đó với cả hai 'rene' và 'rené'.
Tôi đang cố thực hiện điều này với mệnh đề 'đối chiếu' trong MySQL 5.0.8. Tôi nhận được lỗi sau:
mysql> select * from User where username = 'rené' collate utf8_general_ci;
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
FWIW, bàn của tôi đã được tạo ra với:
CREATE TABLE `User` (
`id` bigint(19) NOT NULL auto_increment,
`username` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniqueUsername` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=56790 DEFAULT CHARSET=utf8
Điều gì sẽ xảy ra nếu bạn thay đổi ký tự bảng thành 'utf8'? – friedo
friedo- không phải là những gì DEFAULT CHARSET = utf8 làm gì? (Tôi đã không thực sự tạo ra bảng này, tôi đảo ngược thiết kế nó thông qua 'hiển thị tạo bảng người dùng'). –
Vâng, đó là những gì nó phải làm. Tôi không biết tại sao MySQL dường như nghĩ rằng các bảng xếp hạng là latin1 nếu bạn có nó thiết lập để utf8, mặc dù. – friedo