mysqlのデータはlatin1形式で大量にありますが、すべてをutf8に変換しようとしていますが、これまでのところ正しい照合順序が見つかりませんでしたそれは正しく。 データの一部は、アクセントの多い国際名と、さまざまな言語の文字と、これらのフィールドの主キーです。 私はこのように書き、簡単なテストケースがあります。latin1から来るデータにmysql utf8照合を使用する
CREATE TABLE utf8_test (value varchar(30), PRIMARY KEY(value)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
INSERT INTO utf8_test VALUES ('e');
INSERT INTO utf8_test VALUES ('é');
INSERT INTO utf8_test VALUES ('è');
INSERT INTO utf8_test VALUES ('ü');
INSERT INTO utf8_test VALUES ('u');
INSERT INTO utf8_test VALUES ('y');
INSERT INTO utf8_test VALUES ('ÿ');
それは、問題を実証するための簡単なテストですが、実際のデータは、これに限定されるものではないが。
これまでのところ、utf8_binは重大なエラーなしにすべてを受け入れることができますが、大文字と小文字が区別されるため、使用できません。 何か不足していますか?
注:テーブルの中には何十億もの行があるため、パフォーマンスが要因です。
'utf8_bin' *は大文字と小文字を区別します - 大文字と小文字は区別されますか?つまり、「A」と「a」を区別するために照合が必要ですか? – Mike
私の悪い、私は大文字と小文字を区別し、修正したことを意味しました。 (私は検索をするとA = aを返します) – anto1ne