1. Préparation
Préparez un mot-clé d'importation par lots Excel, qui contient 2 mots-clés
1.pokemon
2.pokémon
Remarque : l'un de ces deux mots-clés est un e ordinaire et l'autre est une syllabeé
Préparer le script SQL de la table de base de données#🎜🎜 #
-- 导入关键词表
CREATE TABLE `keyword_lexicon` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`keyword` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '搜索关键词',
PRIMARY KEY ("id"),
UNIQUE KEY "idx_keyword" ("keyword") USING BTREE COMMENT '关键词'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='导入关键词表';
Copier après la connexion
2 . Récurrence du scénario
Écrire simplement une interface d'importation, le code n'est pas joint. A noter que la méthode INSERT IGNORE INTO est utilisée pour importer sql Si le mot clé existe déjà. ne soit pas écrit sur la table. (Le champ de mot-clé est défini comme un index unique)
L'exemple d'importation SQL est le suivant
INSERT IGNORE INTO keyword_lexicon (`keyword`) VALUES ('pokemon'),('pokémon')
Copier après la connexion
Une fois l'interface importée, vérifiez la table de la base de données et constatez qu'il y a une seule donnée Pokémon.
3. Résoudre le problème
En regardant la structure de la table, nous avons constaté que la règle de tri du champ de mot-clé est
#🎜🎜 #
utf8mb4_general_ci
utf8mb4_general_ci
这种排序规则在识别é这种带有音节的字符时,会识别为e,导致2个关键词在通过INSERT IGNORE INTO导入后只会有一条记录,只要将排序规则改为
-
utf8mb4_bin
Ce tri. est très utile pour identifier é ce type de syllabes sera reconnu comme e, ce qui entraînera un seul enregistrement pour les deux mots-clés après avoir été importés via INSERT IGNORE INTO. Changez simplement la règle de tri en
.
utf8mb4_bin
Ensuite, importez-le à nouveau. Vérifiez. les résultats et vous constaterez que les deux données ont été insérées dans le tableau, problème résolu.
- Summary
utf8mb4_bin est sensible à la casse et fait également la distinction entre e et é ; Ce type de caractères
utf8_genera_ci n'est pas sensible à la casse et ne fait pas non plus de distinction entre les caractères comme e et é#🎜🎜##🎜🎜##🎜🎜 # #🎜🎜#Remarque : utf8_general_cs est sensible à la casse, mais ne fait pas de distinction entre les caractères tels que e et é#🎜🎜##🎜🎜#Si vous devez distinguer les caractères avec des syllabes et que vous ne souhaitez pas être sensible à la casse , vous pouvez utiliser sql. Utilisez la fonction LOWER() lors de l'interrogation du champ correspondant #🎜🎜#
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!