MySQL Ver4.x.x(ver4系列)であいまい検索(LIKE '%...%')できない(日本語・漢字・カタカナ)検索挙動が正確でない問題を解決
状況(環境)
- レンタルサーバー環境下で
.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 '%テスト%';
.ini
も.conf
変更できない- 日本語(漢字・カタカナ)を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 '%テスト%';
LIKE BINARY
を使用するname LIKE '%テスト%' OR name_kana like '%テスト%';
これで解決します。
- ほかは照合順序などを
utf8_general_ci
などにする方法をお試しください。
以上です。
Author And Source
この問題について(MySQL Ver4.x.x(ver4系列)であいまい検索(LIKE '%...%')できない(日本語・漢字・カタカナ)検索挙動が正確でない問題を解決), 我々は、より多くの情報をここで見つけました https://qiita.com/HIROSHI-1403/items/dea9fffc1d5e4622b3eb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .