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 '%【検索文字】%';
コメント