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]