sql >> Database teknologi >  >> RDS >> Mysql

normalisering af karakterer med accent i MySQL-forespørgsler

Årsagen til fejlen er ikke tabellen, men tegnsættet for dit input, dvs. 'rené' i din forespørgsel. Adfærden afhænger af character_set_connection variabel:

Brug MySQL-klienten til at ændre den ved hjælp af SET NAMES :

SET character_set_client = charset_name;
SET character_set_results = charset_name;
SET character_set_connection = charset_name;

(fra http://dev.mysql.com/doc /refman/5.5/da/charset-connection.html )

Eksempel output:

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)

Alternativt kan brug eksplicit indstille tegnsættet ved hjælp af en 'character set introducer':

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)

Jeg ved, at dette spørgsmål er ret gammelt, men da Google førte mig hertil for et relateret spørgsmål, mente jeg, at det stadig fortjener et svar :)



  1. Skift datoformatet for den aktuelle session i SQL Server

  2. Hvordan kan jeg KUN vælge poster fra i går?

  3. Udvikling af fejltolerance i PostgreSQL

  4. mysql vælge int som valuta eller konvertere int til valutaformat?