【MySQL】全角と半角を区別しない検索方法

MySQLで、全角と半角を区別しないで検索する方法です。

以下のようなクエリで全角・半角を無視し抽出することができます。

SELECT * FROM 【テーブル名】
WHERE 【カラム名】 collate utf8_unicode_ci LIKE '%【検索文字】%';

ポイントは「collate utf8_unicode_ci」で、
WEHRE句のカラム名と「LIKE」や「=」等の間に入れます。

ただし、この記載方法は、全角と半角を区別するだけでなく、以下でも同じ扱いされるので注意が必要です。

  • 数字(全角/半角)
  • アルファベット(全角/半角、大文字/小文字)
  • カタカナ(全角/半角)
  • 記号(全角/半角)
  • 濁点(ざじずぜぞ等の「゛」)
  • 半濁点(ぱぴぷぺぽ等の「゜」)
  • 小書き(っ、ゃ、ゅ等の詰まった文字)

なお、データベースがUTF-8でない場合は、以下のようにカラム名をUTF-8に変換させます。

SELECT * FROM 【テーブル名】
WHERE convert(【カラム名】 USING utf8) collate utf8_unicode_ci LIKE '%【検索文字】%';

 

コメント

  1. 匿名 より:

    fv

タイトルとURLをコピーしました