Source originale : Wen Guobing Bienvenue pour partager l'original sur Bole Toutiao
1 Introduction
Dans un environnement de production, il existe souvent un scénario comme celui-ci : obtenir des données chinoises. La question se pose alors : comment pouvons-nous faire correspondre les caractères chinois ?
Cet article propose deux méthodes.
Deuxième démo
Environnement 2.1
mysql> ----------------------- --------------------------- - ---
| Nom_variable |
------------------------- ---- - -----------------------
| version_protocole | 10 |
| version 5.1.73 |
| version_comment | Serveur de communauté MySQL (GPL) |
| version_compile_machine |
| version_compile_os |
--- - ---------------------- ---------------------------- --
5 lignes dans un ensemble (0,00 sec)
2.2 Créer une table de test et insérer des données de test
mysql -S /tmp/mysql_5173.sock -uroot -proot
Créez un tableau de test et insérez les données de test.
mysql> USE test;
Base de données modifiée
mysql> CREATE TABLE utilisateur
-> >-> ) DEFAULT CHARSET = utf8 ENGINE = INNODB;
Requête OK, 0 ligne affectée (0,10 sec)
mysql> 🎜>****************************** 1. rangée **************** *** *********
Nom : utilisateur
Moteur : InnoDB
Version : 10
Row_format : Compact
Lignes : 2
Avg_row_length : 8192
Data_length : 16384
Max_data_length : 0
Index_length : 0
Data_free : 0
Auto_increment : NULL
Create_time : 2015-01-16 18:01:36
Update_time : NULL
Check_time : NULL
Classement : utf8_general_ci
Somme de contrôle : NULL
Create_options :
Commentaire :
1 ligne dans l'ensemble (0,00 sec)
ERREUR :
Aucune requête spécifiée
mysql> INSERT INTO user VALUES('robin');
Requête OK, 1 ligne affectée (0,01 sec)
mysql> ; INSERT INTO user VALUES('Wen Guobing');
Requête OK, 1 ligne affectée (0,00 sec)
Trois implémentations
3.1 Méthode 1 Expression régulière
mysql> SELECT * FROM utilisateur G;
****************************** 1. rangée *** ***********************
nom : robin
******* ********* **************** 2. rangée ********************** *****
nom : Wen Guobing
2 lignes dans l'ensemble (0,00 sec)
mysql> nom REGEXP "[u0391-uFFE5]"
-> WHEN 1 THEN "Pas un caractère chinois"
-> -> END AS "Déterminer s'il s'agit d'un caractère chinois"
-> FROM user;
---------- -------- --------------- -------
| nom | Déterminer s'il s'agit d'un caractère chinois|
----- ------ ----------- ------------------
| robin n'est pas un caractère chinois |
| Wen Guobing | est un caractère chinois
------------------------ ----------
2 lignes dans l'ensemble (0,00 sec)
mysql> SELECT name FROM user WHERE NOT (name REGEXP "[u0391-uFFE5]");
-----------
| nom |
-----------
| Wen Guobing|
-----------
1 rowinset(0.00 sec)
3.2 Méthode 2 length() et char_length()mysql> SELECT nom, length(name ), char_length(name) FROM user; ----------- --- ----------- ---------- --------- | nom | longueur(nom) | char_length(nom) |
----------- ----- ---------- ------------------
| rouge-gorge | 5 | 5 |
| Wen Guobing | 20 |
----------- ------- ------- --------------- ----
2 lignes dans l'ensemble (0,00 sec)
mysql> FROM utilisateur WHERE length(name) char_length(name);
---- -------
| name |
------ -----
| Wen Guobing|
-- ---------
1 rangée (0,00 sec)
Ce qui précède est de savoir comment déterminer les caractères chinois dans MySQL ? Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !