我有一个MySQL过程,它使用另一个表中的select插入表中。 因此
INSERT INTO my_tbl(fld1,fld2,fld3) SELECT fld1,fld2,fld3 FROM tbl_2 其中tbl_2.id = 33;
工作正常
但是,我现在需要从变量中的值(从传入的参数设置)中向my_tbl插入另一个字段
有人可以解释语法,将插入与select(我已经拥有)中的字段与作为过程变量的附加字段混合。
非常感谢
标记
答案 0 :(得分:1)
只需使用变量,就像使用列或列表达式一样,除非它是一个字符串,不要用引号括起来。例如,如果您有变量@idValue
:
INSERT INTO my_tbl (fld1, fld2, fld3)
SELECT fld1, fld2, fld3 FROM tbl_2
where tbl_2.id = @idValue;
或者,如果您正在更新,例如,您有一个变量@fld2Value
:
INSERT INTO my_tbl (fld1, fld2, fld3)
SELECT fld1, @fld2Value, fld3 FROM tbl_2
where tbl_2.id = @idValue;
这会将tbl2.fld1
,变量@fld2Value
的值和tbl2.fld3
插入my_tbl
。插入的行数取决于SELECT
返回的行数,@fld2Value
对于每个插入的行都是相同的。