Originalquelle: Wen Guobing Willkommen zum Teilen des Originals mit Bole Toutiao
1 Einführung
In einer Produktionsumgebung gibt es oft ein Szenario wie dieses: Erhalten chinesischer Daten. Dann stellt sich die Frage: Wie können wir chinesische Schriftzeichen zuordnen?
Dieser Artikel bietet zwei Methoden.
Zweite Demo
2.1 Umgebung
MYSQL> SHOW VARIABLES LIKE "%version%";
+- ------------------------+----------- -----+
|. Variablenname |. Wert |
+----------+ -------------------+
|. Protokollversion 10 |
|. version_comment |
|. version_compile_os | |
+------------------------+-- ------- ----------+
5 Zeilen im Satz (0,00 Sek.)
2.2 Testtabelle erstellen und Testdaten einfügen
mysql -S /tmp /mysql_5173.sock -uroot -proot
Erstellen Sie eine Testtabelle und fügen Sie Testdaten ein.
mysql> USE test;
mysql> CREATE TABLE user
-> >-> ) DEFAULT CHARSET = utf8 ENGINE = INNODB;
Abfrage OK, 0 Zeilen betroffen (0,10 Sek.)
mysql> SHOW TABLE STATUS LIKE 'user' G;
****************************** 1. Reihe *************** *** *********
Name: Benutzer
Engine: InnoDB
Version: 10
Zeilenformat: Kompakt
Zeilen: 2
Durchschn._Zeilenlänge: 8192
Datenlänge: 16384
Max_data_length: 0
Index_länge: 0
Datenfrei : 0
Auto_increment: NULL
Create_time: 2015-01-16 18:01:36
Update_time: NULL
Check_time: NULL
Sortierung: utf8_general_ci
Prüfsumme: NULL
Create_options:
Kommentar:
1 Zeile im Satz (0,00 Sek.)
FEHLER:
Keine Abfrage angegeben
mysql> INSERT INTO user VALUES('robin');
Abfrage OK, 1 Zeile betroffen (0,01 Sek.)
mysql> ; INSERT INTO user VALUES('Wen Guobing');
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)
Drei Implementierungen
3.1 Methode 1 Regulärer Ausdruck
mysql> SELECT * FROM user G;
****************************** 1. Zeile *** **************************
Name: Rotkehlchen
***** *********** **************** 2. Reihe **************** *********
Name: Wen Guobing
2 Zeilen im Satz (0,00 Sek.)
MYSQL> SELECT name,
-> CASE name REGEXP „[u0391-uFFE5]“
-> WHEN 1 THEN „Kein chinesisches Schriftzeichen“
-> >
-> END AS „Bestimmen Sie, ob es sich um ein chinesisches Schriftzeichen handelt“-> FROM user;+----------+-- --------+|. Bestimmen Sie, ob es sich um ein chinesisches Schriftzeichen handelt|+-----------+------ -----------------------+ |. Robin |. ist kein chinesisches Schriftzeichen|| ist ein chinesisches Schriftzeichen|. ----+2 Zeilen im Satz (0,00 Sek.)mysql> SELECT name FROM user WHERE NOT (name REGEXP "[u0391-uFFE5]");+---- -------+| Name |+------ -----+|. Wen Guobing|+----------+1 rowinset(0.00 sec)
3.2 Methode 2 length() und char_length( )
mysql> SELECT name, length(name), char_length(name) FROM user;
+----------+---------- -------+------------------- +
|. length(name) |
+----------- ----+--- +
Wie erkennt man chinesische Schriftzeichen in MySQL? Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!