我需要在使用 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
如果在每个SELECT 语句中放置 SQL_CALC_FOUND_ROWS,则会发出“'SQL_CALC_FOUND_ROWS' 的使用/放置不正确”错误。谷歌了很多,在这里阅读相关消息,无济于事。可能是非常简单的事情,我只是无法理解它。