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

mysql:9754

From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Fri, 02 Jul 2004 18:13:14 +0900
Subject: [mysql 09754] Re: 文字列を数値に変換

 こんにちは。

yoshi <yosihisa@xxxxxxxxxx>さんの
<200407020417.AA00217@xxxxxxxxxx>
"[mysql 09746] Re: 文字列を数値に変換"

> > 文字列を数値化したものと文字列リテラルを比較する事に別段の事由があるの
> >でしょうか?
> ふつうはないと思うのですが、今回は文字列'0001234'と数値の'1234'とを比較
> して同じとみなしてマッチングさせたかったためこのような質問となりました。

 「文字列を数値化したものと文字列リテラルを比較する事」は普通は無いどこ
ろか「あのさぁ、何をやっているのぉ?」と言われかねないと思いますよ。

 それと、ある種のコンピュータ言語やSQL実装に存在する自動的な型変換は便
利ですが、「諸刃の剣」である事を十分理解して使用すべきだと思います。


yoshi <yosihisa@xxxxxxxxxx>さんの
<200407020522.AA00218@xxxxxxxxxx>
"[mysql 09749] Re: 文字列を数値に変換"

> 説明不足だったため、補足の説明をさせていただきますが、
> 実際には、a に入っている頭の'0'はいくつ入ってるかは不定で、
> 1000 に該当する部分は数値型の変数で、perlのプログラムの中で
> 数千件から数万件位のレコードを読み込み毎回マッチングの
> 処理を行おうとしています。

 DB設計を含むシステム設計とは、ある意味、現実世界の不正規なデータをコン
ピュータで扱い易い正規化したデータにする事とも言えます。不正規なデータを
高速に扱える程、コンピュータやその他諸々の仕組みは利口ではない、と言う事
ですね。よって、「頭に '0'が幾つか入るか分からない」の様なカラムの話が出
て来た段階で、このシステム設計は既に終わっているとも言えるでしょう。

 ボクならばどうする、と言う話なら、多分「頭に'0'が幾つか入るか分からな
い数値を文字列化したもの」の数値そのものを格納するカラムを作って、そこに
インデックスを張るでしょう。本質的に重複する値を格納するカラムを1つ追加
する事は損に思えるでしょうが、場合によっては逆にお得になるケースがありま
す。例えば「頭に'0'が幾つか入るか分からない数値を文字列化したもの」にも
主キー /インデックスを張る必然性が無いなら、整数カラムに主キー/インデッ
クスを張る方が断然お得ですから。



    松枝知直    <tomom@xxxxxxxxxx>
            http://www.argus.ne.jp/~tomom/



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

   @  9721 2004-06-30 22:23 ["松本 諭" <auaxs529] userのログイン(?)                    
      9722 2004-07-01 08:38 ┣[yoshi <yosihisa@xxxx]                                       
      9737 2004-07-01 21:48 ┃┗["松本 諭" <auaxs529]                                     
      9723 2004-07-01 08:39 ┣[ML account <ml@xxxxx]                                       
      9738 2004-07-01 23:09 ┃┗["松本 諭" <auaxs529]                                     
      9739 2004-07-02 01:11 ┃ ┗[ML account <ml@xxxxx]                                   
      9724 2004-07-01 09:56 ┗[yoshi <yosihisa@xxxx] 文字列を数値に変換                    
      9725 2004-07-01 10:14  ┣[いっちゃん <icchan@x]                                     
      9726 2004-07-01 10:24  ┣[OGINO Tomonori <ogin]                                     
      9727 2004-07-01 10:40  ┣[ML account <ml@xxxxx]                                     
      9746 2004-07-02 13:17  ┗[yoshi <yosihisa@xxxx]                                     
      9747 2004-07-02 13:46   ┣[JSD藤澤知弥 <fuji]                                   
      9748 2004-07-02 14:00   ┗["片寄白王" <katayose]                                   
      9749 2004-07-02 14:22    ┗[yoshi <yosihisa@xxxx]                                 
      9750 2004-07-02 14:57     ┣["片寄白王" <katayose]                               
      9751 2004-07-02 15:55     ┃┗[yoshi <yosihisa@xxxx]                             
      9753 2004-07-02 17:11     ┃ ┗["片寄白王" <katayose]                           
      9752 2004-07-02 16:00     ┣[Hirofumi Fujiwara <f]                               
->    9754 2004-07-02 18:13     ┣[ML account <ml@xxxxx]                               
      9755 2004-07-02 20:21     ┗[OGINO Tomonori <ogin]