次のようなステートメントがあるとします。
select * from table where column in (select other_column from other_table)
ただし、これは、列「binary」がother_columnと等しい場合にのみ一致させたいと思います。「binarylike」のようなものですが、「in」演算子用です。
質問が明確であることを願っています。ありがとう :)
できるよ:
select * from table where BINARY column in (select other_column from other_table)
また
select * from table where column in (select BINARY other_column from other_table)
しかし、比較する前にすべての値に対して型変換を行うように mysql に要求しているため、これらの両方のパフォーマンスはひどいものになります。
別のコメントが示唆しているように、クエリを JOIN として書き直す方が良いですが、それでも型変換を行っている値に結合するという問題があり、インデックスを使用できません。
それよりも、このフィールドで大文字と小文字を区別するか正確な比較が必要な場合は、テーブルの文字セットを列の BINARY に変更するか、_cs で照合を使用します。
いつものように、マニュアルにはこのMySQL 文字セットと照合順序のすべてが記載されています。