【问题标题】:How to get the number of rows returned from a query?如何获取查询返回的行数?
【发布时间】:2016-04-18 23:02:24
【问题描述】:

有没有一种方法可以获得查询返回的 COUNT(*)?例如:

SELECT * FROM table LIMIT 10 // Query
SELECT (*) FROM table LIMIT 10 // Query Count

这实际上会忽略限制( MySQL COUNT with LIMIT)。虽然这在 sql 中可能很好并且“正确”,但我需要查询返回的确切行数。这将如何实现?

【问题讨论】:

  • 你考虑过SELECT MIN(COUNT(pk), 10) FROM table WHERE column = 'value'吗? (这显然适用于偏移)
  • 使用SQL_CALC_FOUND_ROWSFOUND_ROW()dev.mysql.com/doc/refman/5.7/en/…

标签: mysql sql


【解决方案1】:

如果你真的想适应限制,你可以使用:

select count(*) from (SELECT * FROM table LIMIT 10) as t

【讨论】:

  • 谢谢,有没有比在 SELECT * 上执行子查询更高效的方法来执行上述操作?
  • @David542 我不能确定mysql是否会优化它,但是只选择主键列而不是*
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多