PHP mssql 计算语句中的行数
PHP mssql count rows in a statement
我想计算查询返回的语句中的行数。我找到的唯一解决方案是:
- sqlsrv_num_rows() 对于这样一个简单的任务来说,这个似乎有点太复杂了,我读到使用它会大大降低执行速度
- 使用 SELECT COUNT 执行查询 这种方法似乎没有必要,而且它会减慢执行速度,如果您已经有一个语句,为什么还要麻烦另一个查询。
- 在生成 table 时计算行数因为我必须从 statemnt 生成 html table 我可以放一个变量在 table 生成循环中并将其递增 1,但是这个仅在您已经必须遍历整个语句时才有效。
我是不是漏掉了一些基本的功能and/or知识,还是没有更简单的方法?
感谢任何帮助或指导。
编辑: 返回的语句只是原始语句的一小部分 table 因此为此目的执行另一个查询是不切实际的。
在 sql 服务器中 table 行信息存储在目录视图和动态管理视图中,您可以使用它来查找计数
此方法仅适用于实体 table。因此,您可以将记录存储在一个临时 table 中,稍后再删除
SELECT Sum(p.rows)
FROM sys.partitions AS p
INNER JOIN sys.tables AS t
ON p.[object_id] = t.[object_id]
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE p.index_id IN ( 0, 1 ) -- heap or clustered index
AND t.NAME = N'tablename'
AND s.NAME = N'dbo';
有关详细信息,请查看此 article
如果您不想执行另一个查询,请在查询后使用 select @@rowcount
。它将获得前一个 select
查询
返回的 count
行
select * from query_you_want_to_find_count
select @@rowcount
我想计算查询返回的语句中的行数。我找到的唯一解决方案是:
- sqlsrv_num_rows() 对于这样一个简单的任务来说,这个似乎有点太复杂了,我读到使用它会大大降低执行速度
- 使用 SELECT COUNT 执行查询 这种方法似乎没有必要,而且它会减慢执行速度,如果您已经有一个语句,为什么还要麻烦另一个查询。
- 在生成 table 时计算行数因为我必须从 statemnt 生成 html table 我可以放一个变量在 table 生成循环中并将其递增 1,但是这个仅在您已经必须遍历整个语句时才有效。
我是不是漏掉了一些基本的功能and/or知识,还是没有更简单的方法?
感谢任何帮助或指导。
编辑: 返回的语句只是原始语句的一小部分 table 因此为此目的执行另一个查询是不切实际的。
在 sql 服务器中 table 行信息存储在目录视图和动态管理视图中,您可以使用它来查找计数
此方法仅适用于实体 table。因此,您可以将记录存储在一个临时 table 中,稍后再删除
SELECT Sum(p.rows)
FROM sys.partitions AS p
INNER JOIN sys.tables AS t
ON p.[object_id] = t.[object_id]
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE p.index_id IN ( 0, 1 ) -- heap or clustered index
AND t.NAME = N'tablename'
AND s.NAME = N'dbo';
有关详细信息,请查看此 article
如果您不想执行另一个查询,请在查询后使用 select @@rowcount
。它将获得前一个 select
查询
count
行
select * from query_you_want_to_find_count
select @@rowcount