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

mysql:15412

From: nakade <nakade <nakade@xxxxxxxxxx>>
Date: Tue, 5 Oct 2010 19:28:08 +0900
Subject: [mysql 15412] not in句がうまく動かない。

なかでと申します。

以下のようなテーブルがあったとします。

CREATE TABLE IF NOT EXISTS `usrs` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


INSERT INTO `usrs` (`id`, `name`) VALUES(1, 'ほげ');
INSERT INTO `usrs` (`id`, `name`) VALUES(2, 'ふご');

このとき、idフィールドが偶数のデータを取り出したくて

SELECT * FROM `usrs` WHERE id % 2 not in (1);

のようなSQLを発行したのですが、「返り値が空でした(行数0)」のような
表示がされます。なお、

SELECT * FROM `usrs` WHERE id % 2 in (0);
SELECT * FROM `usrs` WHERE id % 2 != 1;

のようにすると取り出すことができます。

確認したmysqlのバージョンは4.0.27でした。
なお、5.0.22では、この問題はありませんでした。

で、教えていただきたいのですが、これは、4.0.27に限った問題なのでしょうか?
それとも4系の問題なのでしょうか?

あるいは、 not in の使い方やテーブルの仕様などに問題があるのでしょうか?


以上、教えていただければ幸いです。

では、失礼します。

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

->   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]