【MySQL】4.1系で不具合?(NULL許可のUNIQUE制約のあるカラムにて)
今回は、不思議な現象の報告のみ。
MySQL 4.1.22付近の複数のバージョンで発生。
MySQL 5系では発生しませんでした。
現象)
下記の定義とデータのテーブルで、NULL許可のUNIQUE制約のあるカラムを SELECT DISTINCT すると期待した結果が返ってこない。
・テーブル定義
CREATE TABLE t ( `id` int(11) default NULL, UNIQUE KEY (`id`) );
・データ
select * from t; +--------+ | id | +--------+ | [NULL] | | [NULL] | | 1 | | 2 | | 3 | +--------+
・問題のSQLと結果
select distinct id from t; +--------+ | id | +--------+ | [NULL] | | [NULL] | | 1 | | 2 | | 3 | +--------+
・GROUP BY しても変
select id from t group by id; +--------+ | id | +--------+ | [NULL] | | [NULL] | | 1 | | 2 | | 3 | +--------+
・ちなみにこうすると結果が変わる
select id, count(*) from t group by id; +--------+----------+ | id | count(*) | +--------+----------+ | [NULL] | 2 | | 1 | 1 | | 2 | 1 | | 3 | 1 | +--------+----------+
・こうしてもよい
select distinct id + 0 from t; +--------+ | id + 0 | +--------+ | [NULL] | | 1 | | 2 | | 3 | +--------+
原因をご存知の方、不具合報告など情報をご存知の方、教えてください。
コメント