実行時にSQLクエリで照合を変更できます
...where title like '%torun%' collate utf8_general_ci
ただし、実行時に照合をオンザフライで変更すると、mysqlがインデックスを使用する可能性がなくなるため、大きなテーブルでのパフォーマンスが低下する可能性があることに注意してください。
または、列をsearchable_title
などの別の列にコピーすることもできます 、ただし、照合を変更します。実際には、この種の作業を行うのが一般的です。データをコピーしますが、特定のワークロード/目的に合わせて最適化されたわずかに異なる形式でデータを取得します。複製された列の同期を維持するための優れた方法として、トリガーを使用できます。この方法は、インデックスを作成すると、うまく機能する可能性があります。
注-データベースにhtmlエンティティではなく、実際にこれらの文字が含まれていることを確認してください。また、接続の文字セットも重要です。上記は、たとえばsetを介してutf8に設定されていることを前提としています。名前
set names utf8
のように
そうでない場合は、紹介者 が必要です。 リテラル値の場合
...where title like _utf8'%torun%' collate utf8_general_ci
もちろん、SQLクエリの残りの部分がエンコードされていない場合でも、一重引用符の値は実際にはutf8でエンコードされている必要があります。