sql >> データベース >  >> RDS >> Mysql

メールフィールドに最適な文字セットは何ですか?

    電子メールアドレスはテキストの一部です。したがって、バイナリを使用しないでください 、テキストを使用します。

    Utf8 良い選択のようです。メールアドレスでサポートされている文字はわかりませんが、今後ますます多くのUnicode文字が許可されるようになると予想されます。特に、データベースの他の場所でutf8を使用する場合は、あるエンコーディングから別のエンコーディングに切り替える必要はありません。すべてにutf8を使用するだけです。

    utf8_binからの選択について 、 utf8_unicode_ci およびutf8_general_ci 、違いは照合だけです。これは、文字列を比較するときに違いが生じることを意味します。

    ここで、許可されるものと通常のもののどちらかを選択する必要があります。通常、メールアドレスでは大文字と小文字が区別されませんが、大文字と小文字が区別される場合があります。

    したがって、電子メール列で一意のインデックスを使用し、大文字と小文字のみが異なる電子メールアドレスを許可する場合は、 utf8_binを使用する必要があります。 、_ciで終わる照合は「大文字と小文字を区別しない」ことを意味するため。

    一意のインデックスを使用していて、大文字と小文字だけが異なるメールを避けたい場合は、 utf8_unicode_ciを使用してください。 。

    そうは言っても、私は utf8_unicode_ciを使用します 。データベースが[email protected] を認識できるようにしたい および [email protected] 同じアドレスとして。同じ文字で大文字が異なるアドレスの可能性を考慮するよりもはるかに便利です。




    1. MySQLまたはPHPのmd5関数:より速く/より良いものは何ですか?

    2. SQLSTATE [HY093]:無効なパラメーター番号:パラメーターが定義されていません

    3. if(isset($ _ POST ['submit']))を使用して、スクリプトが開いているときにエコーを表示しないように機能していません

    4. MD5をデータベースに保存するときのBINARY(16)とCHAR(32)の違い