Mysql查询同一字段两个不同类型值的差

table中 同一个字段,type值不同求差或求和

求字段filedB某段时间所有记录中两个type之和的差
其中 if 和case 是当时用两种方式试了一下效果

	select sum(a) - sum(b) as c from (
		SELECT
		--  if(filedA=2,sum(filedB),0) as a,
		--  if(filedA=3,sum(filedB),0) as b
		case filedA when 2 then sum(filedB) end a,
		case filedA when 3 then sum(filedB) end b
		
		FROM
		 table_name
		WHERE
		created_at < 'xxxxx'
		and filedA in (2,3)
		GROUP BY filedA 
	) m
MySQL中,如果你想要将同一字段内的两行修改为一致,可以通过更新语句结合条件判断来实现。这通常涉及到对一个表中的两个不同记录的更新操作。这里提供一个通用的示例来说明如何操作: 1. 使用自连接(Self Join)的方式来更新: 假设你有两个用户id(user_id)分别为A和B,你想要将用户A的某个字段更新为与用户B的某个字段相同。可以通过将表自身连接来实现这一点,例如: ```sql UPDATE 表名 AS A INNER JOIN 表名 AS B ON A.某个条件 = B.某个条件 SET A.需要更新的字段 = B.相应的字段; ``` 这里的`某个条件`可以是任意能够确保A表和B表正确匹配的条件,例如用户ID,或者是其他用来区分记录的唯一键。 2. 使用临时变量来更新: 如果更新条件较为复杂,可以使用临时变量来暂存,然后进行更新。例如: ```sql SET @变量名 = (SELECT 要更新的字段 FROM 表名 WHERE 更新条件); UPDATE 表名 SET 要更新的字段 = @变量名 WHERE 更新条件; ``` 这里的`@变量名`是一个会话级别的变量,你可以先从表中获取一个赋给这个变量,然后使用这个变量来更新其他记录。 请注意,具体的SQL语句需要根据你的表结构、字段名以及你想要更新的条件来编写。在执行更新操作之前,请确保你有足够的权限,并且最好在执行更新前做好数据备份,以防万一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值