[前][次][番号順一覧][スレッド一覧]

mysql:5792

From: ebihara <ebihara <ebiharaml@xxxxxxxxxx>>
Date: Fri, 12 Jul 2002 13:27:09 +0900
Subject: [mysql 05792] Re: 電話番号の検索

もと記事の海老原です。

引用順番変更させていたしました。

>ちろん、すでに運用されているDBで表の構成変更が難しいと言うことであれば、
>> select * from tbl where replace(tel,'-','')='033456aaaa';

了解です。結局検索を優先させたい場合は 033456aaaa のようにーのつかない
カラムを別途用意するのがベストということになるのですね。
今回はdbの変更が難しいということでもないのですが簡易的なdbなので
左辺にrelpace()を置くという方法で対応いたしました。
無事一発で動作いたしました。

大杉眞規 さんは書きました:
>> select * from tbl where replace(tel,'-','')='033456aaaa';
>
>とするのは左辺加工( = の左側の項)といってオススメしない…とSIの人にに話
>を聞いたことがあります。INDEXが無効化されてしまうとのことです。

>くらいであれば、パフォーマンスの劣化は体感できないかもしれません。ただ、
>このようなコーディングを日常的にしているとクセになってしまうかもしれませ
>ん。

なるほど。勉強になりました。

あと、

MIYATSU Kazunari さんは書きました:
>mysql> select * from address where telephone like '1%2%1%1%7%8%7%4%2%1%2%2';
>7 rows in set (0.38 sec)
>一番最後のIndexをフル利用できるケースは当たり前として、likeの方がreplaceより
>はマシってのは意外でした。


このLIKE を使う方法だったら 03(3456)aaaa と記録されていても対応できますね。
勉強になりました。ありがとうございました。



--------------------------------------------------------------------------
海老原祐太郎  ebihara@xxxxxxxxxx
http://www.si-linux.com/   ←組み込み Linux / Hitachi SH3Linux

[前][次][番号順一覧][スレッド一覧]

      5779 2002-07-11 15:02 [ebihara <ebiharaml@x] 電話番号の検索                          
      5780 2002-07-11 15:31 ┣[遠藤 俊裕 <endo_t@xx]                                       
      5781 2002-07-11 15:34 ┣["Yuya.Nishida." <yuy]                                       
      5782 2002-07-11 15:41 ┗["MIYATSU Kazunari" <]                                       
      5783 2002-07-11 16:03  ┗[大杉眞規  <osugi@xxx]                                     
      5784 2002-07-11 17:33   ┣["MIYATSU Kazunari" <]                                   
->    5792 2002-07-12 13:27   ┗[ebihara <ebiharaml@x]