MySQLは、INSERTを実行するときに文字列を変換したいと考えています およびSELECT 。変換は、クライアントを宣言したものの間で行われます。 持っているものと列 保存していると宣言されています。
これを回避する唯一の方法は、VARBINARYを使用することです。 およびBLOB VARCHARの代わりに およびTEXT 。
COLLATION utf8mb4_binの使用 CHARACTER SET utf8mb4との間の変換を回避しません; WHEREとだけ書かれています およびORDER BY アクセントや大文字小文字の区別を扱うのではなく、ビットを比較する必要があります。
CHARACTER SET utf8mb4に注意してください テキストをエンコードする方法です。 COLLATION utf8mb4_* そのエンコーディングのテキストを比較するためのルールです。 _bin 素朴です。
UNIQUE 同等性を比較する必要があるため、COLLATION 。ほとんどのutf8mb4照合では、3つ(スペースなし)は同等に比較されます。 utf8mb4_bin 3つを異なるものとして扱います。 utf8mb4_hungarian_ci one=One>öneを扱います。
末尾のスペースは、列のデータ型(VARCHAR)によって制御されます。 またはその他)。最新バージョンには、末尾のスペースを考慮するかどうかに関する設定もあります。