在SQL查询中实现循环,而不是在PHP中?

时间:2015-09-22 20:50:51

标签: mysql sql loops

是否可以在SQL查询中编写循环? 或者它只能在PHP中使用? (在php中编写循环,我在每次迭代时执行查询)

示例:

查询是否可以包含这样的循环:

LOOP(50) { UPDATE Table SET X=X+1 }

或者我必须在php中编写它,并在每次迭代时调用单个查询?

2 个答案:

答案 0 :(得分:1)

您可以创建包含序号的表格。然后,您可以使用此表的JOIN来进行查询循环。

UPDATE Table 
CROSS JOIN Numbers AS n
SET X = X + 1
WHERE n.number BETWEEN 1 AND 50

答案 1 :(得分:0)

您可以创建一个存储过程,该过程接受循环数的参数。 MSSQL语法:

DECLARE @cnt INT = 5;
DECLARE @i INT = 0;
DECLARE @x INT = 0;

WHILE @i < @cnt
BEGIN
 SET @x = @x + 2;
 SET @i = @i + 1;
END

MySql语法:

WHILE i < cnt DO
...
END WHILE