LIMIT を使用する UNION ALL SELECT クエリで、個々の SELECT ステートメントの行数を取得する必要があります。MySQL のドキュメントでは、クエリのグローバル行数を取得する方法が明確になっています (個々の SELECT を括弧で囲み、最初のステートメントにのみ SQL_CALC_FOUND_ROWS を配置してから、通常の方法で FOUND_ROWS() を取得します)。ただし、個々のSELECT ステートメントの結果行数も必要です。簡略化されたクエリ:
(SELECT SQL_CALC_FOUND_ROWS `field1`,`field2` FROM `db`.`table1` WHERE `id`>1000)
UNION ALL
(SELECT `field1`,`field2` FROM `db`.`table2` WHERE `id`>1000)
UNION ALL
...
(SELECT `field1`,`field2` FROM `db`.`tableN` WHERE `id`>1000)
LIMIT 0,10
SQL_CALC_FOUND_ROWS がすべての SELECT ステートメントに配置されている場合、「'SQL_CALC_FOUND_ROWS' の使用法/配置が正しくありません」というエラーが発行されます。これをたくさんグーグルで検索し、ここで関連するメッセージを読んでください。本当に単純なことかもしれませんが、私はそれを理解することができません。