搜尋

首頁  >  問答  >  主體

MySQL如何将常量与变量拼接?

要写一个存储过程,更新从参数 起始 到 结束 的全部列。
比如,有列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;

在保存的时候,字符串连接函数报错,不知道该如何解决?

PHPzPHPz2785 天前875

全部回覆(1)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 13:45:30

    你需要把動態列名先定義為一個變量,然後才能使用,例如:

    set @col = CONCAT('a', @n);
    Update table set @col=1;

    回覆
    0
  • 取消回覆