)が違うためSQLのjoinで失敗。これを機会に照合順序について調べてみる。'='##照合順序とは?MySQLは文字コードとソート順を持っていて、ソート順の部分がCollationとよばれている。Set)比較するときには文字コードだけでなくてCollationが一致するかどうかを比較する(順序が合わないと比較できない)。JOINしようとするとエラーになる。DB単位、テーブル単位、カラム単位で設定可能。ようなCollationの場合。japanesejapaneseやthaiやgeneral、unicodeなどが入ります。generalやunicodeはマルチリンガルの事(utf8にjapaneseはない)。バイナリ##utf8_general_ciとutf8_unicode_ciの違いwhereでのフィルタや、joinの際に違いが出てくる。utf8_unicode_ciの方があいまい検索またはあいまいな一致するが、少し遅いとのことらしい。ちなみに、mysqlのデフォルトはutf8_general_ciとなる。utf8_general_ciアルファベットの大文字小文字は区別しない。utf8_unicode_ci大文字小文字/全角半角を区別しない。「AAA」で検索すると、半角アルファベット「AAA」、全角アルファベット「AAA」、半角アルファベット小文字「aaa」、全角アルファベット小文字「aaa」がマッチする。「あああ」で検索すると、全角ひらがな「あああ」全角カタカナ「ァァァ」半角カタカナ「アアア」全角ひらがな小文字「ぁぁぁ」全角カタカナ小文字「ァァァ」がマッチする。「2」で検索すると、半角数字「2」、全角数字「2」がマッチする。しないでマッチする検索をしたい##照合順序が違うカラムでjoinする方法utf8_general_ciとutf8_unicode_ciはCollationが違いますが、そもそも文字コードは同じutf8ですので、Collationを指定してやることでjoinできるようになります。してる##utf8_general_ciとutf8_unicode_ciをどう使うかどちらを使用するかについて自分の考え他の方の意見についてコメントで寄せて頂ければありがたい以下の理由のため、特段理由がない場合、utf8_general_ciを使いたい・デフォ設定のため手間が少ない・パフォーマンス的が良いためまた、あいまい検索を行うカラムについは、SQLで対応する参考MySQLのCollationを理解するためにまとめてみた。