mysql:9746
From: yoshi <yoshi <yosihisa@xxxxxxxxxx>>
Date: Fri, 02 Jul 2004 13:17:56 +0900
Subject: [mysql 09746] Re: 文字列を数値に変換
yoshiです。 いっちゃんさん、おぎのさん、松枝さんレスをいただきありがとうございます。 返事が遅くなってしまい申し訳ありません。 > 文字列を数値化したものと文字列リテラルを比較する事に別段の事由があるの >でしょうか? ふつうはないと思うのですが、今回は文字列'0001234'と数値の'1234'とを比較 して同じとみなしてマッチングさせたかったためこのような質問となりました。 > WHERE a=1000 >で,暗黙にaが数値型に変換され評価されます。 ''をはずしてやってみましたが、うまくいったようです。 ありがとうございました。 但し、関連して他の問題が発生してしまいました。 実はaはプライマリキーだったのですが、数値型に変換されるときに たぶんインデックスが使われなくなってしまうためだと推測する のですが、いままでの約40倍ほど処理が遅くなってしまい、 愕然としてしまいました。 (但しこれはoracleでもきっと同じ現象なのだとは思いますが) やりたいことは上記のようなことなのですが、速度を犠牲にしない 何かよい方法はないものでしょうか? > >表題の件、oracleでは次のようなsqlを、 >SELECT a FROM table WHERE TO_NUMBER(a) = '1000'; > >mysqlにはTO_NUMBERのような関数がないようなのですが、 >どのようにすれば数値として比較が可能なのでしょうか? > > ----
@ 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]