ど素人から毛を生やす。<延>

[MySQL]特定の条件下にて検索結果が1件になってしまうらしい。

Web > Other 2018年2月13日(最終更新:6月前)

どもです。
MySQLにて。

少し前にリリースしたソースに、唐突に不具合の報告が入りました。
曰く、特定の条件下にて、本来は複数件ヒットするはずの検索結果が1件になってしまうとのこと。

デバッグしてみたところ、SELECT文の出力までは問題ないように見えます。
が、確かに条件次第でMySQLからの返答が1件になってしまっています。
この条件についても、たまたま見つかった不具合であって、あくまでこうなる条件自体は不明。

今回のケースですが、原因がまさかのORDER BY。

ここのDBの構成は、ひとつの親に対し、複数の子がつきます。
そのため、子は親のIDと枝番をキーにしています。親子をJOINした状態です。求めるのは子。

ORDER BY
 親.ID
 子.枝番

こうなっていたところを、

ORDER BY
 子.親ID
 子.枝番

にしたところ、何故か直りました。

結局、原因はよくわからないままなのですが、今回のケースだと、明らかに修正版の方が「正しい」。
「値が同じだからどちらでも良いだろう」とか軽いノリはダメですね。反省。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)