要写一个存储过程,更新从参数 起始 到 结束 的全部列。
比如,有列a1,a2,a3......,a20,
存储过程传进start和end两个参数分别为2和10
要根据参数将a2,a3......,a10更新为1。
我目前写了一个
BEGIN
SET @a=0;
ins: LOOP
set @a=@a+1;
IF @a>=start AND @a<=end THEN
UPDATE `tableA` SET CONCAT('a',CAST(@a AS CHAR))=1;
END IF
IF @a>end THEN
LEAVE;
ELSEIF ITERATE ins;
END LOOP ins;
END;
在保存的时候,字符串连接函数报错,不知道该如何解决?
大家讲道理2017-04-17 13:45:30
You need to define the dynamic column name as a variable first, and then you can use it, such as:
set @col = CONCAT('a', @n);
Update table set @col=1;