在SQL Server中如何批量修改表中的值?
以MySql为例:
现在需求是把sex为 ‘1’ 的数据的headpicture改为‘1.png’,sex为‘0’的数据的headpicture改为‘0.png’。
修改语句:
update t_user set t_user.headpicture= REPLACE (headpicture,'3','1.png') where t_user.sex='1';
这种方法适用于原headpicture字段值不为空的情况下。我的原数据是空,用这种方法还要先给headpicture赋值。
't_user'是表名,'headpicture'是要修改的字段名,replace(修改后的字段名,'被修改的内容','修改后的内容'),where后可以设置一些修改的前提条件。
总感觉上述方法比较笨,不应该这么复杂的,于是就找到了一个可以直接修改,无视空值的方法是:
update t_user set headpicture ='0.png' where sex ='0';
mysql修改语句分组更新让一个字段自增?
可以使用MySQL的UPDATE语句和子查询来实现分组更新让一个字段自增的功能。具体实现步骤如下:
假设有一张名为table的表,其中有两列数据,分别为id和count,需要根据id进行分组,让count自增1。可以使用以下SQL语句实现:
```
UPDATE table t1
INNER JOIN (
SELECT id, MAX(count) max_count
FROM table
GROUP BY id
) t2 ON t1.id = t2.id
SET t1.count = t2.max_count + 1;
```
以上SQL语句中,首先使用子查询获取每个id对应的最大count值,然后通过内连接将查询结果和原表连接起来,最后将count字段更新为对应的最大值+1,实现了分组更新让一个字段自增的功能。
mysql如何把单条update语句批量执行?
when和then语句就可以实现批量更新语句
UPDATE table_own SET
cloumn_own= CASE id
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
END
WHERE id IN (1,2,3);
这个批量更新语句的意思就是说,更新cloumn_own字段,如果id=1 则cloumn_own=a,如果id=2 则cloumn_own=b,如果id=3 则cloumn_own=c
记住,其实end 后面的where语句是不可必需的,但最好是带上
如果不加where条件,会使整个表的数据更新,不满足条件的对应的值会设置成默认值(导致你执行的前面n-1次都是无效,保留的是第n次)
带上where条件的话,就不会出现这种情况了