Heim  >  Artikel  >  Datenbank  >  Mysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

Mysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

王林
王林nach vorne
2023-05-31 19:55:04941Durchsuche

1. Vorbereitung

Bereiten Sie ein Batch-Import-Schlüsselwort-Excel vor, das 2 Schlüsselwörter enthält: 1.pokémon

2.pokémon

Hinweis: Eines dieser beiden Schlüsselwörter ist ein gewöhnliches e

Datenbanktabellen-SQL-Skript vorbereiten

-- 导入关键词表
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='导入关键词表';

Zweitens, Szenenwiederholung

Schreiben Sie einfach eine Importschnittstelle, der Code ist nicht angehängt. Es ist zu beachten, dass die INSERT IGNORE INTO zum Importieren der SQL-Methode verwendet wird, wenn das Schlüsselwort bereits in vorhanden ist Tabelle, es wird nicht in die Tabelle geschrieben. (Das Schlüsselwortfeld ist als eindeutiger Index festgelegt.)

Das Beispiel für den Import von SQL lautet wie folgt:

INSERT IGNORE INTO keyword_lexicon (`keyword`) VALUES ('pokemon'),('pokémon')

Überprüfen Sie nach dem Anpassen der Schnittstelle, um den Import abzuschließen, die Datenbanktabelle und stellen Sie fest, dass nur ein Pokemon-Datenelement vorhanden ist.

3. Lösung des ProblemsMysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

Bei Betrachtung der Tabellenstruktur haben wir festgestellt, dass die Sortierregel des Schlüsselwortfelds

utf8mb4_general_ci
  • utf8mb4_general_ci

Mysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

这种排序规则在识别é这种带有音节的字符时,会识别为e,导致2个关键词在通过INSERT IGNORE INTO导入后只会有一条记录,只要将排序规则改为

  • utf8mb4_binSo lösen Sie das Problem, dass MySQL Pinyin-Zeichen durch INSERT IGNORE INTO einfügt, ist ungültig

  • Diese Sortierung Die Regel ist sehr nützlich, um diese Art von Zeichen mit Silbenzeichen zu identifizieren. Sie wird als e erkannt, was nach dem Import über INSERT IGNORE INTO nur zu einem Datensatz führt. Ändern Sie einfach die Sortierregel in

Mysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

utf8mb4_bin

Mysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.

Überprüfen Sie dann die Ergebnisse und Sie werden feststellen, dass beide Daten in die Tabelle eingefügt wurden und das Problem gelöst ist.
  • Zusammenfassung
  • utf8mb4_bin unterscheidet zwischen Groß- und Kleinschreibung und unterscheidet auch Zeichen wie e und é

utf8_genera_ci unterscheidet nicht zwischen Groß- und Kleinschreibung und unterscheidet nicht zwischen Zeichen wie e und é

🎜 🎜🎜Hinweis: Bei utf8_general_cs wird die Groß-/Kleinschreibung beachtet, es wird jedoch nicht zwischen Zeichen wie e und é unterschieden entsprechende Felder in SQL) Funktion🎜

Das obige ist der detaillierte Inhalt vonMysql fügt Pinyin-Zeichen über INSERT IGNORE INTO ein.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen