首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql查询中创建和更新虚拟列值

在mysql查询中创建和更新虚拟列值
EN

Stack Overflow用户
提问于 2016-02-24 12:47:42
回答 1查看 445关注 0票数 0

我的桌子结构是

代码语言:javascript
复制
customer  column1 column2(int) 
  1        sale      2            
  1        return    1            
  1        sale      3             
  1        sale      1             
  1        return    1  

问题:-

创建一个虚拟列(Column3),该列具有启动值column3 = 0,并根据column1column2值更新其值。我找不到一起创建和更新虚拟列的查询。

例如IF(column1='sale',column3 + column2, column3-column2 )

代码语言:javascript
复制
// start value of column3 = 0 for each product
customer  column1 column2(int) column3
  1        sale      2             2  //0+2 because it is a sale 
  1        return    1             1  //2-1 because it is a return 
  1        sale      3             4  //1+3 because it is a sale 
  1        sale      1             6  //4+2 because it is a sale 
  1        return     1            4  //6-2 because it is a return 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 13:33:31

交叉连接应该解决这个问题:

代码语言:javascript
复制
SELECT
    t.column1,
    t.column2,
    CASE
WHEN t.column1 = 'sale' THEN
    @id :=@id + t.column2
ELSE
    @id :=@id - t.column2
END AS column3
FROM
(SELECT @id:=0) var
CROSS JOIN table1 t
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35602662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档