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
)によって制御されます。 またはその他)。最新バージョンには、末尾のスペースを考慮するかどうかに関する設定もあります。