SQL语句批量增加减少数量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句批量增加减少数量相关的知识,希望对你有一定的参考价值。
比如有一张表mingcheng,有一个字段shuliang(使用次数),当我使用一次后字段shuliang会自动增加一次(比如原来 1 使用后 2),现在要批量减少一次使用次数。
参考技术A 直接update该表中这个字段就可以了,很容易,你的疑问是什么?自动去改?若整个表的shuliang字段都减少一次,这么写吧
update mingcheng m set m.shuliang = m.shuliang - 1 ;追问
update更新不是批量统一更新这个字段了吗? 我要的是shuliang(使用次数)减少一次
mingcheng shuliang
1 1
2 5
3 2
更新后
mingcheng shuliang
1 0
2 4
3 1
以上那个sql,就能满足你这个需求。将表中所有记录的shuliang这个字段减一。
若是针对某几行的修改,那再加限制条件。
不加where条件就是全表更新 参考技术C 如果你对单行操作 可以使用before触发器啊。
SQL替换语句 批量修改增加删除字段内容
sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。
命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, ‘原来内容‘, ‘新内容‘)
如 UPDATE Whir_ProductRelese SET ReleseName=REPLACE(ReleseName,‘aa‘,‘bb‘)
举例说明:
1)把backupfile表里url的字段内容里为aa的字符全部改为bb。
update backupfile set url=REPLACE(url,‘aaa‘,‘bbb)
2)根据条件增加字段的内容,如把file_number=1的记录的logical_name字段的内容前面加上tmp,后面加上end。
update backupfile set logical_name=REPLACE(logical_name,logical_name,‘tmp‘+logical_name+‘ end ‘) where file_number=1
3)根据条件去掉指定记录的前面2个字符。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1
4)根据条件去掉指定记录的后面4个字符。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2
如有不清楚的可以先用select语句验证是否达成自己想要的效果再进行替换:
SELECT REPLACE(替换字段,‘原内容‘,‘新内容‘) from 表名;
update 表名 set 替换字段=(REPLACE(替换字段,‘原内容‘,‘新内容‘))
以上是关于SQL语句批量增加减少数量的主要内容,如果未能解决你的问题,请参考以下文章