是否可以在SQL查询中编写循环? 或者它只能在PHP中使用? (在php中编写循环,我在每次迭代时执行查询)
示例:
查询是否可以包含这样的循环:
LOOP(50) { UPDATE Table SET X=X+1 }
或者我必须在php中编写它,并在每次迭代时调用单个查询?
答案 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