dポイントプレゼントキャンペーン実施中!

MySQLを使っていて、下記条件で結果がemptyになります。
どうすれば正常に取得できるようになるでしょうか。

SELECT `hoge`, `fuga`, `piyo`
FROM `table`
WHERE `moge` = 'moge'
ORDER BY `fuga` DESC
LIMIT 0, 5

・`moge`と`piyo`にはインデックスが貼られています。
・DESCを消すと正常に取得できます。
・WHERE句を消すと正常に取得できます。
・LIMITの数値を大きくすると正常に取得できます。('moge'によってどれくらい大きくすればいいかの数値は違う)
・LIMITのoffsetを1以上にすると正常に取得できます。

1ヶ月ほどはちゃんと動作していたのですが、`fuga`をUPDATEしたタイミングからこのような現象となりました。

環境
・Ubuntu 12.04.1 LTS
・MySQL 5.5.28
・エンジン mroonga
・groongaのバージョン2.0.9

足りない情報があれば補足致します。
宜しくお願い致します。

A 回答 (2件)

SELECT `hoge`, `fuga`, `piyo`


from ( SELECT * FROM `table`
WHERE `moge` = 'moge' ) S
ORDER BY `fuga` DESC
LIMIT 0, 5
のようにサブクエリを使っても動作は変わりませんか?

この回答への補足

教えていただいた方法で正常に返ってくるようになりました!
でも出来れば、原因をちゃんと把握しておきたいのと、修正できるなら修正をしたいのですが原因までわかりますでしょうか?
よろしければご教授ください。宜しくお願い致します。

補足日時:2013/01/04 23:45
    • good
    • 0

正直原因は分かりません。

「mroonga」を使っているのが影響しているのかもしれません。
とりあえずの対症療法と考えてください。
できれば、エンジンをInnodbのみした時に再現するのかを試して、「mroonga」の問題らしければ開発コミュニティにメールしたほうがいいでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!