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这个字段减一。
若是针对某几行的修改,那再加限制条件。

本回答被提问者采纳
参考技术B update mingcheng set shuliang=shuliang-1 where 条件
不加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语句批量增加减少数量的主要内容,如果未能解决你的问题,请参考以下文章

sql语句 在某个字段中批量增加一个字母的命令怎么写

SQL替换语句 批量修改增加删除字段内容

Mysql sql语句优化经验总结

mysql的sql语句优化5种方式

Statement和PreparedStatement有什么区别?哪个性能更好?预编译语句,防止sql注入问题

mysql批量修改字段动态内容的sql语句怎么写