mysql:9755
From: OGINO Tomonori <OGINO Tomonori <ogino@xxxxxxxxxx>>
Date: Fri, 2 Jul 2004 20:21:13 +0900
Subject: [mysql 09755] Re: 文字列を数値に変換
おぎのです。 <200407020522.AA00218@xxxxxxxxxx> の、 "[mysql 09749] Re: 文字列を数値に変換" において、 "yoshi <yosihisa@xxxxxxxxxx>"さんは書きました: > yoshiです、レスをありがとうございます。 > > 片寄白王 さんは書きました: > >片寄です。 > > > >> ふつうはないと思うのですが、今回は文字列'0001234'と数値の'1234'とを比較 > >> して同じとみなしてマッチングさせたかったためこのような質問となりました。 > > > >> 実はaはプライマリキーだったのですが、数値型に変換されるときに > >> たぶんインデックスが使われなくなってしまうためだと推測する > >> のですが、いままでの約40倍ほど処理が遅くなってしまい、 > >> 愕然としてしまいました。 参考に示したマニュアル,ちゃんと読んでください。 http://dev.mysql.com/doc/mysql/ja/Comparison_Operators.html 「注意: 次のように、文字列型のカラムを数値型と比較する場合、…」 > > > >SELECT a FROM table WHERE a = '0001000'; > >SELECT a FROM table WHERE a = LPAD('1000',8,'0'); > > > >ではどうでしょう。1000をどのように指定するかですが。 > 説明不足だったため、補足の説明をさせていただきますが、 > 実際には、a に入っている頭の'0'はいくつ入ってるかは不定で、 フォーマット不定であれば,速度は諦めて下さい。。 速度が必要な操作なら,もう,テーブル設計のミスです。 設計を考え直すべき状態でしょう。 ----- OGINO Tomonori ogino@xxxxxxxxxx
@ 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]