MySQLの文字列には、文字セットと照合 があります。 。 Utf8は文字セットであり、utf8_binはその照合の1つです。文字列リテラルをutf8列と比較するには、先頭に_charset表記を付けてutf8に変換します。
_utf8 'Something'
現在、照合は一部の文字セットに対してのみ有効です。ケース-機密 utf8の照合はutf8_binのように見えます。これは、次のように指定できます。
_utf8 'Something' collate utf8_bin
これらの変換により、クエリは機能するはずです:
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
_charsetプレフィックスは、文字列リテラルで機能します。フィールドの文字セットを変更するには、CONVERT...USINGがあります。これは、次のように、pageTitleフィールドを別の文字セットに変換する場合に便利です。
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
'TAB'というテーブルの'col'という名前の列の文字と照合を確認するには、次のようにしてください。
select distinct collation(col), charset(col) from TAB
すべての文字セットと照合のリストは、次の場所にあります:
show character set
show collation
そして、utf8のすべての有効な照合は次の場所で見つけることができます:
show collation where charset = 'utf8'