mysql 批量更新(可用存储过程)

数据大概是这样的:广告id(id)IP(ip)时间(date)点击量(click)1198.25.54.4511254987101185.45.14.4711547899... 数据大概是这样的:
广告id(id) IP(ip) 时间(date) 点击量(click)
1 198.25.54.45 11254987 10
1 185.45.14.47 11547899 100
2 184.78.45.14 13457489 10

要执行的语句用平常的MySQL 语句写出来是:
update tableName set click=click+2 where id=1 and ip='198.25.54.45' and date=11254987;
update tableName set click=click+4 where id=1 and ip='185.45.14.47' and date=11547899;
update tableName set click=click+3 where id=2 and ip='184.78.45.14' and date=13457489;

大概示例就是这样 想一次更新完成 因为数据可能较为庞大 大概一次会更新1000条左右 所有求大神帮忙
展开
 我来答
百度网友0f37e23c0
2013-03-20 · TA获得超过1543个赞
知道大有可为答主
回答量:1070
采纳率:50%
帮助的人:1280万
展开全部
update tableName set click=click+
case
when id=1 and ip='198.25.54.45' and date=11254987 then 2
when id=1 and ip='185.45.14.47' and date=11547899 then 4
when id=2 and ip='184.78.45.14' and date=13457489 then 3
end;
更多追问追答
追问
能问下 这样更新的时候怎样让如果条件不存在 新生成数据  可以吗?
追答
你把  能想到的 条件 都写到 case when 里面,满足条件 就可更新。不满足,不更新

update tableName set click=click+
case
when id=1 and ip='198.25.54.45' and date=11254987 then 2
when id=1 and ip='185.45.14.47' and date=11547899 then 4
when id=2 and ip='184.78.45.14' and date=13457489 then 3
/* 所有条件 */
else 0
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
今至电子科技有限公司
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整... 点击进入详情页
本回答由今至电子科技有限公司提供
蓝色的鱼99
2013-03-20 · TA获得超过452个赞
知道小有建树答主
回答量:345
采纳率:0%
帮助的人:234万
展开全部
不知道你这个click=click+2,+3,+4 是怎么个规律??是所有数据都加的一样的?
更多追问追答
追问
不一样,比如这么说吧 
我要更新的数据放在一个数组里了,是这个样的
$array = array(
'1_198.25.54.45_11254987'=>(int)2,
'1_185.45.14.47_11547899'=>(int)4,
'2_184.78.45.14_13457489'=>(int)3,

);
然后普通的方法就是循环这个数组 然后拼成上面说的sql语句就可以更新。
因为数据大,所以想看看通过什么方法能做成一次更新的
追答
哦 你有这样的一个数组
最笨的那就是循环数组 这个你知道的 费劲 又慢
然后你说的存储过程 其实跟循环数组一样的 就是循环的地方不一样
但是存储过程比直接sql循环省事,效率要高
=> 还是要foreach循环数组 取得 4个参数值,然后吧这4个值传给存数过程
数据库写个存储过程,接受4个值 然后去更新

存储过程是一组予编译的SQL语句
它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式