2010年10月 6日

[mysql 15415] Re: not in句がうまく動かない。

なかでです。


2010年10月6日13:25 Meiji KIMURA <meiji.kimura@xxxxx>:
> 木村です。
>
> これはMySQL 4.xで演算子NOTの優先順位が最上位だったことが原因だと思います。
> そのためid % 2 not in (1);では、%より先にnotのほうが先に評価されてしまう、

> すなわちid % (2 not in (1));相当になり、結果セットが戻らないのだと思います。
>
> # 5.xではNOTの優先順位がかなり下がりました。See this manual.
>
> http://dev.mysql.com/doc/refman/5.1/ja/operator-precedence.html
>
> これを避けるためには、なかでさんが行っているように、かっこをつけて
> 優先順位を明確にするか、MOD()関数を使うと正しい値が戻ります。
>

詳しい説明、ありがとうございます。

mysqlのバージョンによって演算子の優先順位が違っていたとは
思いもよらず、mysqlのバグかなぁなんて思ってしまいました。
今回はよい勉強になりました。

では、失礼します。


投稿者 xml-rpc : 2010年10月 6日 13:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/98929
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。