【发布时间】:2019-12-19 08:54:14
【问题描述】:
我正在尝试通过这样的存储过程填充表:
SET @resultsCount = (SELECT COUNT(*) FROM tableA);
SET @i = 0;
WHILE @i < @resultscount DO
SET @revNum = 0;
INSERT INTO tableB (Name, revNumber, Meta)
SELECT
name AS Name,
(IF @i=0 THEN
SELECT @revNum;
ELSE IF <condition> THEN
SET @revNum = @revNum +1;
SELECT @revNum;
ELSE
SELECT @revNum;
END IF) AS revNumber,
meta AS Meta
FROM tableA;
SET @i = @i + 1;
END WHILE;
但是,由于语法错误,上述 IF 语句失败。我曾尝试使用 IF 函数或 case 语句,但它们似乎只允许在每个条件之后执行单个语句,并且我需要在两个单独的语句中执行 SET 和 SELECT。
【问题讨论】:
标签: mysql if-statement stored-procedures while-loop alias