त्रुटि का कारण तालिका नहीं है, बल्कि आपके इनपुट का कैरेक्टरसेट है, यानी आपकी क्वेरी में 'रेने'। व्यवहार character_set_connection चर:
MySQL क्लाइंट का उपयोग करके, इसे 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/hi/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)
वैकल्पिक रूप से, उपयोग 'वर्ण सेट परिचयकर्ता' का उपयोग करके वर्ण सेट को स्पष्ट रूप से सेट कर सकता है:
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 ने मुझे एक संबंधित प्रश्न के लिए यहां ले जाया है, हालांकि मैं अभी भी इसका उत्तर पाने का हकदार हूं :)