こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字列中のスペースを排除するには??

DB上のデータの真ん中に全角スペースが入ってるのをうまく取得したいのですがどうしたらよいでしょうか?
例)
北海道 札幌市
青森県 つがる市
鹿児島県 鹿児島市
アメリカ フロリダ州
といった感じです。
セレクトするときにwhere = '北海道札幌市'と繋げて検索したいのですがどうすればよいでしょうか?
TRIMだと左右の空白しか排除出来ませんしDBのデータを一からやり直す訳にもいきません。
どうしたらよいのでしょうか?
SQLを発行するプログラムの関係上スペースの対処で悩んでいます。
もともとDBの設計ミスだと思いますがいまさら変えることも出来ないので・・・・

投稿日時 - 2008-08-11 22:33:33

QNo.4244850

すぐに回答ほしいです

質問者が選んだベストアンサー

検索の速度がタイトならファンクション索引を作るのもありかもしれませんね。
create インデックス名 on テーブル名 ( replace(フィールド名,'_','') );

投稿日時 - 2008-08-13 14:37:30

このQ&Aは役に立ちましたか?

14人が「このQ&Aが役に立った」と投票しています

回答(2)

where replace(フィールド名,'_','') = '北海道札幌市';
'_'の部分は、シングルコーティーションで囲われた全角スペースを思ってください。
ちなみに、そのフィールドに索引が付いていても、索引を使った検索が出来ませんので、それなりに遅いです。

投稿日時 - 2008-08-12 03:24:10

あなたにオススメの質問