【发布时间】:2019-07-23 13:29:31
【问题描述】:
我正在尝试查询 sql-server 数据库,通过 Microsoft for PHP 的 PDO 驱动程序进行 while 循环,但它没有循环,它只返回一行。
我尝试在 Microsoft SQL Server Managment Studio 中进行相同的查询,并确实得到了结果,我的意思是,它迭代并获取了所有行。
Declare @startDate Datetime
Declare @finishDate Datetime
set @startDate = '2019-07-01 06:00:00.000'
set @finishDate = '2019-07-23 06:00:00.000'
Declare @date01 Datetime
Declare @date02 Datetime
set @date01 = @startDate
set @date02 = @date01 + 1
WHILE @date01 < @finishDate
BEGIN
SELECT
SUM ([col1] * [col2]) as 'val'
FROM table
Where [colDateTime] >= @date01
and [colDateTime] <= @date02
SET @date01 = @date01 + 1;
SET @date02 = @date02 + 1;
END;
当通过 PDO 进行查询时,我只得到一行,但我应该得到 23 行。
【问题讨论】:
-
你的sql有错误,
comma就在FROM table之前 -
您是否复制过此代码?我想不会,因为有这个错误
-
@GuidoG ye 我在示例中提供了该代码,这不是我正在使用的,而是主要结构
-
那么这段代码的结果将是一行一行,因为即使你循环很多次,结果每次都不会保存在任何地方,所以你只能得到最后一个的结果在循环中执行查询
-
一开始为什么要循环播放?众所周知,RDBMS 中的循环速度很慢。
标签: php sql sql-server