どうもORDER BYとLIMITの組み合わせがあるSQLの場合に現象が発生するようだ。
気に入らないが、where句で使ってるテーブルのIDをORDER BYの最後に付け加えるとうまくいった。
無意味なORDER BY項目なんで影響はないけどずっと気持ち悪かった。
しかし、2013-04-18にリリースされたMySQL 5.6.11で以下の記述を発見!
Handling of SQL_CALC_FOUND_ROWS in combination with ORDER BY and LIMIT could lead to incorrect results for FOUND_ROWS(). (Bug #68458, Bug #16383173)
お!何かそれっぽいBugs Fixedがあるぞ!早速、バージョンUPで試してみると直ってる!!!
半分5.6からの仕様なのかと諦めてたが、バグだったんだ!良かった!
でも、DBのバージョンUPの作業しないといけない。。。それはそれで悲しい。。。