私はクエリを実行していた 2 つの異なる方法に奇妙な MySQL の問題を突き止めました。すべてを煮詰めると、この方法でより多くの結果が返されます。
SELECT DISTINCT <stuff> FROM <tables>
WHERE promo_detail_store_id in (8214, 8217, 4952, 8194, ...)
この WHERE 句の変更により、これらの結果のサブセットが生成されます。
WHERE promo_detail_store_id in ('8214, 8217, 4952, 8194, ...')
(promo_detail_store_id は、MyISAM テーブルで BIGINT として定義されます。)
もともと、その store_ids のリストはずっと長かったので、文字列の長さに奇妙な制限があるのではないかと考えて、どんどん短くしていきました。しかし、いいえ、非常に小さな文字列/リストにも当てはまります。明らかに、型強制やおそらく「in」演算子の動作に関連して、舞台裏で何かが起こっています。誰かが私を啓発できますか?