MySQL在select语句中声明了一个用户定义的变量,但是没有将它显示为列

时间:2012-06-20 21:03:42

标签: mysql insert

我构造一个select语句,该语句稍后将是insert语句的值。 大多数列都是计算字段。我最近了解到你可以在select:

期间重用计算字段
select
  id,
  @sum1 := col1 + col2 as colSum1,
  @total1 := @sum1 + col3 as colTotal1,
  @gtotal := @sum1 + total1 as colGTotal

结果集将为4列:idcolSum1colTotal1colGTotal。 我需要将结果列放在最后一列colGTotal

同样,这个select语句将是insert的值。

INSERT INTO tbltest VALUES (SELECT...)

我只需要插入colGTotal

所以我想我需要的是select语句中的变量声明和赋值(不能在外面),但是将它作为一个结果列放在insert语句中。

1 个答案:

答案 0 :(得分:0)

如果可以,请重写您的查询以产生一个列:

select col1 + col2 + col1 + col2 + col3 as colGTotal

或者,您可以将此SELECT语句用作子查询,并仅选择所需的列:

INSERT INTO tbltest VALUES (SELECT colGTotal FROM (SELECT id, @sum1 ...) AS foo)