1
我想替换的值(1> -1),其与下面的命令的表 UPDATE table_name
SET column_name
=取代(列名, '1', '-1') ;如何通过可变与UPDATE MySQL查询
但是,我决定学习如何在Mysql中使用存储的程序,因为列的数量与他们经常格式化的namesn('i01','i02',...)很大。 下面是我的审判:
DELIMITER $$
DROP PROCEDURE IF EXISTS example$$
CREATE PROCEDURE example()
BEGIN
DECLARE p INT;
DECLARE str VARCHAR(20);
SET p = 1;
WHILE p < 100 DO
IF p <= 9 THEN SET str = CONCAT('i0', p);
ELSE SET str = CONCAT('i', p);
END IF;
UPDATE target_table
SET `str` = replace(str, '1', '-1');
SET p = p + 1;
END WHILE;
END$$
当我执行此脚本,这是确定的,并调用该函数,有说ERROR 1054(42S22):在“字段列表未知列 'STR' “。 如何传递变量,在这种情况下@str,更新查询内? 我在网上搜索,发现PREPARE可能是一个答案,但无法弄清楚如何在我的情况下使用。
非常感谢你 – 2014-11-06 17:59:42
@YongWookShin当然可以!很高兴我可以帮助:)因为你很快就接受了答案,所以生病给你+1了!谢谢 – 2014-11-06 18:00:38
我刚刚纠正了一点点>> SET @update_qry = CONCAT(“UPDATE jung_um SET'”,str,“'= replace(”,str,“,'2','1');”); PREPARE qry FROM @update_qry; – 2014-11-06 18:27:46