Причината за грешката не е таблицата, а наборът от символи на вашия вход, т.е. „rené“ във вашата заявка. Поведението зависи от character_set_connection променлива:
Използвайки MySQL Client, променете го с помощта на SET NAMES
:
SET character_set_client = charset_name;
SET character_set_results = charset_name;
SET character_set_connection = charset_name;
(от http://dev.mysql.com/doc /refman/5.5/en/charset-connection.html )
Примерен изход:
mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)
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'
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from User where username = 'rené' collate utf8_general_ci;
Empty set (0.00 sec)
Алтернативно, use може изрично да зададе набора от знаци с помощта на „въвеждащ набор от символи“:
mysql> set names latin1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from User where username = _utf8'rené' collate utf8_general_ci;
Empty set (0.00 sec)
Знам, че този въпрос е доста стар, но тъй като Google ме доведе тук за свързан въпрос, смятам, че все още заслужава отговор :)