我构造一个select语句,该语句稍后将是insert语句的值。 大多数列都是计算字段。我最近了解到你可以在select:
期间重用计算字段select
id,
@sum1 := col1 + col2 as colSum1,
@total1 := @sum1 + col3 as colTotal1,
@gtotal := @sum1 + total1 as colGTotal
结果集将为4列:id
,colSum1
,colTotal1
和colGTotal
。
我需要将结果列放在最后一列colGTotal
。
同样,这个select语句将是insert的值。
INSERT INTO tbltest VALUES (SELECT...)
我只需要插入colGTotal
所以我想我需要的是select语句中的变量声明和赋值(不能在外面),但是将它作为一个结果列放在insert语句中。
答案 0 :(得分:0)
如果可以,请重写您的查询以产生一个列:
select col1 + col2 + col1 + col2 + col3 as colGTotal
或者,您可以将此SELECT语句用作子查询,并仅选择所需的列:
INSERT INTO tbltest VALUES (SELECT colGTotal FROM (SELECT id, @sum1 ...) AS foo)