mysql+php 中批量更新

骄傲青蛙 2009-10-26 11:31:26

有a表(id, name, sort), 假设有20条记录, 现在要批量更新这20条记录.

我用php打印出来成一张表格, 修改后, update一般有方法:



一, 建立一张相同结构的b表的, 批量插入数据, 再关联并批量覆盖到a表

二, 在php里一条条循环更新a表


还有其它更好的方法吗?
...全文
235 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄药师-掌风 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

假设你要更新 1000 个记录,无规律。 (有规律的话,你可以直接用一条UPDATE完成了。)

你把这 1000个记录插入临时表,也是需要时间和操作的! PHP中去生成这个insert 语句,为什么不直接去执行 update 呢?
[/Quote]
就是啊 应该有方法吧 不然的话 数据量一大 对于更新操作的话 也是一个不小的资源耗费啊
nianzhang747 2009-10-26
  • 打赏
  • 举报
回复
数据量小的话用第一种 那样几个字段可以合并成一个字段 譬如id name sort
合并成类似下面的
name
"1zhangPeople,2liPeople,3pipiDog"
如果数据量多的话要符合第三范式 那样的话就你的第二种 不过可以给要更新的字段加上标记 或者从前台获得要更新的字段 有目的的更新
ACMAIN_CHM 2009-10-26
  • 打赏
  • 举报
回复
假设你要更新 1000 个记录,无规律。 (有规律的话,你可以直接用一条UPDATE完成了。)

你把这 1000个记录插入临时表,也是需要时间和操作的! PHP中去生成这个insert 语句,为什么不直接去执行 update 呢?
骄傲青蛙 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vinsonshen 的回复:]
你想一条语句处理的话,你也得把这些数据放进一个临时表吧?然后才能去关联更新吧?
[/Quote]

嗯, 那是我说的第一种做法

但貌似数据多时不是好的方法
vinsonshen 2009-10-26
  • 打赏
  • 举报
回复
你想一条语句处理的话,你也得把这些数据放进一个临时表吧?然后才能去关联更新吧?
骄傲青蛙 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vinsonshen 的回复:]
20条记录
在php直接update就可以了
[/Quote]


我以为用一条sql可以批量更新, 好像批量插入一样 ...
vinsonshen 2009-10-26
  • 打赏
  • 举报
回复
20条记录
在php直接update就可以了
骄傲青蛙 2009-10-26
  • 打赏
  • 举报
回复


高手们的意思是数据少时第一种, 多时第二种 ?
ACMAIN_CHM 2009-10-26
  • 打赏
  • 举报
回复
如果是PHP的话,一般是
[Quote]二, 在php里一条条循环更新a表[/Quote]

由程序来实现。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧