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

mysql:15415

From: nakade <nakade <nakade@xxxxxxxxxx>>
Date: Wed, 6 Oct 2010 13:55:08 +0900
Subject: [mysql 15415] Re: not in句がうまく動かない。

なかでです。


2010年10月6日13:25 Meiji KIMURA <meiji.kimura@xxxxxxxxxx>:
> 木村です。
>
> これは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のバグかなぁなんて思ってしまいました。
今回はよい勉強になりました。

では、失礼します。

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

     15412 2010-10-05 19:28 [nakade <nakade@xxxxx] not in句がうまく動かない。              
     15413 2010-10-06 11:07 ┗[nakade <nakade@xxxxx]                                       
     15414 2010-10-06 13:25  ┗[Meiji KIMURA <meiji.]                                     
->   15415 2010-10-06 13:55   ┗[nakade <nakade@xxxxx]