アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

スペース文字を無視して検索する(力技)

※書き方はMySQL前提です

たまーに、DBに登録されているデータのスペース文字を無視して検索を行いたい場合があります。

速度を求める必要がある場合は、検索用カラムを別途用意しておくのがよいのですが、
そうでもない場合(手作業で一時的に検索したいだけ、など)は以下のようなクエリで全半角スペースを無視して検索できます。

SELECT * FROM `テーブル`
WHERE REPLACE(REPLACE(`カラム`, ' ', ''), ' ', '') = '検索ワード'

単純にREPLACE関数を用いて、
「「対象カラムの半角スペースを空文字に置換した文字列」に対して、さらに全角スペースを空文字に置換した文字列」
と比較しているだけです。
もちろん同様の方法でスペース以外の特定文字を無視することもできますし、LIKE検索で部分一致検索も可能です。

対象カラムにインデックスを張っている場合でも全く効きませんので、レコード数が多い場合は時間がかかる可能性があります。