• ベストアンサー

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

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

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

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

その他の回答 (1)

回答No.1

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