sql >> データベース >  >> RDS >> Mysql

MySQLクエリでアクセント付き文字を正規化する

    エラーの理由は、テーブルではなく、入力の文字セット、つまりクエリの「rené」です。動作は、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/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)
    

    または、「文字セットイントロデューサ」を使用して文字セットを明示的に設定することもできます:

    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が関連する質問のためにここに案内してくれたので、それでも答える価値があります:)



    1. .SQLファイルを使用してMySQLデータベースを作成する

    2. エラー1366の取得不正な整数値:ファイルのインポート時に「1」

    3. mysql用のオープンソースERダイアグラム作成ツール

    4. 1つのステートメントで2つのテーブルを更新するにはどうすればよいですか?