ホームページ  >  記事  >  データベース  >  MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

王林
王林転載
2023-05-31 19:55:04897ブラウズ

1. 準備作業

2つのキーワードを含む一括インポートキーワードexcelを準備します

1.pokemon

2.pokémon

注: これら 2 つのキーワードのうち 1 つは通常の e で、もう 1 つは音節です é

データベース テーブル SQL スクリプトの準備

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

2. シーンの繰り返し

単純に次のように記述します。インポート インターフェイスの場合、コードは添付されません。SQL のインポートには INSERT IGNORE INTO メソッドが使用されることに注意してください。キーワードがテーブルに既に存在する場合、キーワードはテーブルに書き込まれません。 (キーワード フィールドは一意のインデックスとして設定されます)

インポート SQL の例は次のとおりです

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

インターフェイスを調整してインポートを完了した後、データベース テーブルを確認すると、ワンピースのポケモンデータ。

MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

#3. 問題の解決

テーブル構造を見ると、キーワード フィールドの並べ替えルールが

# であることがわかりました。
  • # #utf8mb4_general_ci

##この並べ替えルールが é などの音節を持つ文字を認識すると、次のように認識されます。 e、結果は 2 INSERT IGNORE INTO を通じてインポートされた後、各キーワードには 1 つのレコードのみが含まれます。並べ替えルールを MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

    #utf8mb4_bin
  • に変更するだけです。

その後、再インポートして結果を確認すると、両方のデータがテーブルに挿入されており、問題が解決されていることがわかります。 MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

概要

MySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?

utf8mb4_bin では大文字と小文字が区別され、e や é

    # などの文字も区別されます。
  • ##utf8_genera_ci は大文字と小文字を区別せず、e と é

  • 注: utf8_general_cs は大文字と小文字を区別しますが、e は区別しません。 é

    文字を音節で区別する必要があり、大文字と小文字を区別したくない場合は、SQL
  • で対応するフィールドをクエリするときに LOWER() 関数を使用できます。

以上がMySQL は INSERT IGNORE INTO を通じてピンイン文字を挿入します。問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。