0
这里是我的查询:与LIMIT MySQL查询,LEFT JOIN和SQL_CALC_FOUND_ROWS
SELECT *
FROM designs AS d
LEFT JOIN categories AS c
ON d.category = c.category
GROUP BY d.name ASC LIMIT 0, 10
我想返回找到没有适当的限制条件的行数。这是我的思路:
SELECT SQL_CALC_FOUND_ROWS '0', *
FROM designs AS d
LEFT JOIN categories AS c
ON d.category = c.category
GROUP BY d.name ASC LIMIT 0, 10
UNION
SELECT '1', FOUND_ROWS()
这是行不通的。我得到一个列#不匹配。我将如何修改查询的工作?
是的,这是我的问题(在第二个查询中返回的列较少),但我不知道如何使列匹配或找到另一个查询解决方案,从而得到没有“限制”的所有行的计数“考虑在内。我总是可以运行2个查询,但认为可能有更优雅的方式。 – MarkL
只需在第二个查询中添加更多列:SELECT'1',FOUND_ROWS(),NULL,NULL,NULL,...,NULL。另外,在我看来,最好总是定义从数据库中检索的列,而不是使用星号(*) –