アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

検索の速度がタイトならファンクション索引を作るのもありかもしれませんね。


create インデックス名 on テーブル名 ( replace(フィールド名,'_','') );
    • good
    • 2

where replace(フィールド名,'_','') = '北海道札幌市';


'_'の部分は、シングルコーティーションで囲われた全角スペースを思ってください。
ちなみに、そのフィールドに索引が付いていても、索引を使った検索が出来ませんので、それなりに遅いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す