Sample data.
lang
1CREATE DATABASE `test` DEFAULT CHARACTER SET utf8; 2 3CREATE TABLE `test` ( 4 `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 5 `a_date` timestamp NULL DEFAULT NULL, 6 `b_date` timestamp NULL DEFAULT NULL, 7 PRIMARY KEY (`id`), 8 KEY `index_a_data` (`a_date`), 9 KEY `index_b_data` (`b_date`) 10) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 11 12insert into test set a_date="2014-01-01 00:00:00", b_date="2013-01-01 00:00:00"; 13insert into test set a_date="2014-02-01 00:00:00", b_date="2013-02-01 00:00:00"; 14insert into test set a_date="2014-03-01 00:00:00", b_date="2013-03-01 00:00:00"; 15insert into test set a_date="2014-04-01 00:00:00", b_date="2013-04-01 00:00:00";
上記のような状況で、下記SQLではindexが使用されない。
カラム同士の総ナメが必要だし仕方ない...
lang
1select * from test where a_date > b_date;
同等の結果を取得する、高速なSQL(indexが使用される)へ書き換える事ができるのえあれば、それを知りたい。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/06/11 00:37