状況(環境)
- レンタルサーバー環境下で
.ini
も.conf
変更できない - phpMyAdminでの操作のみ権限がある。(CUIでアクセスや変更ができない)
- レンタルサーバー環境下でバージョンアップを期待できない
- IaaS(AWS等)に移行計画を期待できない
事象
- 日本語(漢字・カタカナ)をLIKEとワイルドカード(%)を利用した時の検索挙動がおかしい。
(例)
カラム名:name
:name_kana
データ :name='女性テスト'
:name_kana='ジョセイテスト'
- name LIKE '%女性%' OR name_kana like '%女性%';
- →検索OK
- name LIKE '%女性テスト%' OR name_kana like '%女性テスト%';
- →検索OK
- name LIKE '%ジョセイ%' OR name_kana like '%ジョセイ%';
- →検索OK
- name LIKE '%テスト%' OR name_kana like '%テスト%';
- →検索できない
- name LIKE '%セイ%' OR name_kana like '%セイ%';
- →検索できない
対策
-
LIKE BINARY
を使用する
name LIKE '%テスト%' OR name_kana like '%テスト%';
これで解決します。
- ほかは照合順序などを
utf8_general_ci
などにする方法をお試しください。
以上です。