Masafumi Yokoyama
yokoy****@clear*****
2015年 7月 1日 (水) 19:15:08 JST
横山です。 ご報告ありがとうございます! スキーマとSQLを載せていただいたので、すぐに確認できて助かりました。 手元のMroonga 5.03でも再現したので、5.04で発生した問題というわけでは なさそうです。試した環境は以下です。 OS: CentOS 7.1 Mroonga 5.03-2 MySQL 5.6.25-2 以下のようにWHERE条件から`flags1` = 'flags1'または`flags2` = 'flags2'を 取り除いてもとヒットするようになりますね。もう少し調査してみます。 mysql> SELECT `ID` FROM `test` WHERE `date` < '2015-07-01 12:00:00' AND `flag1` = 'flag1' ORDER BY `date` DESC LIMIT 1; +----+ | ID | +----+ | 1 | +----+ 1 row in set (0.00 sec) mysql> SELECT `ID` FROM `test` WHERE `date` < '2015-07-01 12:00:00' AND `flag2` = 'flag2' ORDER BY `date` DESC LIMIT 1; +----+ | ID | +----+ | 1 | +----+ 1 row in set (0.00 sec) On 2015年07月01日 17:16, foamcentime wrote: > お世話になります。 > 表題の不具合と思われる現象に遭遇した為報告させて頂きます。 > ご確認頂けますでしょうか。 > > ・環境 > OS Debian8.1 > Mroonga 5.04-1 > MySQL 5.5.43-0+deb8u1 > > ・DB > CREATE TABLE `test` ( > `ID` int(11) NOT NULL AUTO_INCREMENT, > `date` datetime NOT NULL, > `flag1` varchar(20) NOT NULL, > `flag2` varchar(20) NOT NULL, > PRIMARY KEY (`ID`), > KEY `flag2_flag1_date_ID` (`flag2`,`flag1`,`date`,`ID`) > ) ENGINE=Mroonga DEFAULT CHARSET=utf8; > > INSERT INTO `test` (`ID`,`date`,`flag1`,`flag2`) VALUES > (1,'2015-07-01 00:00:00','flag1','flag2'), > (2,'2015-07-01 12:00:00','flag1','flag2'), > (3,'2015-07-02 00:00:00','flag1','flag2'); > > ・SQL > SELECT `ID` FROM `test` WHERE `date` < '2015-07-01 12:00:00' AND > `flag1` = 'flag1' AND `flag2` = 'flag2' ORDER BY `date` DESC LIMIT 1; > > 上記SQLでORDER BYがASCの場合は問題ありませんが、DESCにすると結果が0になります。 > また、WHEREの不等号を > にした場合はASC、DESC共に問題ありませんでした。 > > 以上、よろしくお願い致します。 > > foamcentime > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.osdn.me/mailman/listinfo/groonga-dev > -- 横山 昌史 <Masafumi Yokoyama> E-mail: yokoy****@clear***** 株式会社クリアコード 〒170-0005 東京都豊島区南大塚3-29-9 Tel: 03-5927-9440 Web: http://www.clear-code.com/ Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/