当前位置:首页 > 日记 > 正文

MySQL批量更新相同字段的方法,用于不同值的多个记录

MySQL批量更新相同字段的方法,用于不同值的多个记录
首先,MySQL更新了一个数据字段,这是通常写的。
更新表设置这个行业'value'where other_field 'other_value= =;
您还可以在其中指定要更新的记录:
更新表设置这个行业= 'value'where other_field在('other_values);
注意这里的other_values '是一个逗号(,)分隔的字符串,如1,2,3

如果更新了一些数据,并且每个记录的值都是不同的,那么很多人都会写这个:
foreach(美元值myvalue id =美元美元){
为SQL = 更新表设置这个行业=美元myvalue id是$id;
mysql_query($ SQL);
}
它是一个循环的更新记录。一个记录是更新,性能不好,很容易引起阻塞。

那么,是否可以使用SQL语句进行批处理更新呢

MySQL没有提供直接的方法来实现批处理更新,但它可以用一点技巧来完成。
更新表
设置这个行业=事件ID
当1 then'myvalue1
当2'myvalue2'then
当3 then'myvalue3
结束
在other_field('other_values)
如果在条件查询的ID记录不在受案范围,这个行业将被设置为空。

如果更新了多个值,只需要稍加修改即可。
更新表
集myfield1 =事件ID
当1 then'myvalue11
当2 then'myvalue12
当3 then'myvalue13
结束,
myfield2 =事件ID
当1 then'myvalue21
当2 then'myvalue22
当3 then'myvalue23
结束
在ID(1,2,3)
这里,以PHP为例来构建这两个MySQL语句:

1。为不同的值更新多个单字段,MySQL模式

ids_values美元=阵列(
1=11,
2=22,
3=33,
4=44,
5=55,
6=66,
7=77,
8=88,
);

ID =崩溃美元(',',array_keys($ ids_values));
为SQL = 更新表设置这个行业=事件ID;
foreach(ids_values美元美元美元ID = > myvalue){
为SQL = sprintf(当%d %d美元后,美元的ID,自我价值);
}
在id($ id);
sql $。;
输出:
更新表设置这个行业=事件ID 1时11时22时2 3, 33 33 4 4 44 44 5 5 55 55 6。
2。更新不同值的多个领域,PDO模式

$data =阵列(阵列('id' = 1,'myfield1val ' = 11,'myfield2val ' = 111),数组('id' = 2,'myfield1val ' = 22,'myfield2val ' = 222));
where_in_ids美元=崩溃(',',array_map(功能($ V){ returnid_
update_sql美元=更新表;
$params =阵();

update_sql美元= ' myfield1 =事件ID;
foreach($美元=美元关键数据项){
update_sql美元=时:id_ 。美元关键。然后myfield1val_ 。$键;
$params {:id_ 。美元关键} = { 'id' } $项;
$params {:myfield1val_ 。美元关键} = { } 'myfield1val美元的项目;
}
update_sql美元=结束;

update_sql美元myfield2 =事件ID=;
foreach($美元=美元关键数据项){
update_sql美元=时:id_ 。美元关键。然后myfield2val_ 。$键;
$params {:id_ 。美元关键} = { 'id' } $项;
$params {:myfield1va2_ 。美元关键} = { } 'myfield2val美元的项目;
}
update_sql美元=结束;

update_sql美元=在ID(where_in_ids美元。;
echo $ update_sql。;
var_dump($params);
输出:
更新表设置myfield1 =,ID的时候:id_0然后:myfield1val_0时:myfield1val_0:myfield1val_0,myfield1,= =:以下两方面。

数组(大小= 6)
int:id_0= > 1
int:myfield1val_0= > 11
int:id_1= > 2
int:myfield1val_1= > 22
int:myfield1va2_0= > 111
int:myfield1va2_1= > 222
其他三批更新

1。替换为批处理更新
替换表(ID,这个行业的价值(1),'value1),(2,'value2),(3,'value3);
2。插入…关于重复密钥更新批处理
插入表(ID,myfield1,myfield2)值(1,'value11 ','value21),(2,'value12 ','value22),(3,'value12)。
三.临时表
如果表滴存在` tmptable `;
创建临时表tmptable(ID int(4)主键,这个行业的varchar(50));
插入tmptable值(1,'value1),(2,'value2),(3,'value3);
更新表,tmptable集mytable.myfield = tmptable.myfield哪里mytable.id = tmptable.id;
{替换为}和插入到}更新都依赖于主键或唯一值,并可能导致新记录操作的结构隐患。
替换操作本质上是第一次删除,然后为重复记录插入,如果更新的字段没有完全丢失,则设置默认值。
{ }只不过是更新重复的记录,而更改的字段只能遵循公式值。
临时表模式要求用户具有临时表的创建权限。
替换和插入具有最佳性能。当他们大的时候,他们是最好的。{结构具有普遍性,无结构性风险。
总结

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,你可以留言。

相关文章

excel中的文本传递方法

excel中的文本传递方法

方法,文本,电脑软件,excel,当使用excel进行表处理时,通常需要在表的单元格中执行文本换行操作。如果按常规按Enter键,焦点将转移到下一个单元格。那么我们如何自动换行文本呢下面是三种常用的介绍方法。 PC页面文本网络广告图片 方法1:自动…

解决两个jQuery(JS)特定的bug冲突的

解决两个jQuery(JS)特定的bug冲突的

解决方案,冲突,两个,电脑软件,bug,问题: 使用jQuery,JSON是一种资源下载应用程序使用的分页效果paginate.js和JSON数据和jQuery的效果。domwindow js弹出窗口。 但是下面的错误出现了 在弹出事件失败后单击第一页; 分析: 在paginate.js /…

javascript日期对象的详细解决方案

javascript日期对象的详细解决方案

日期,解决方案,对象,详细,电脑软件,日期对象是日期对象和时间对象,其主要功能是实现日期和时间的处理。 1。创建日期对象 复制代码代码如下:var创建=新的日期(); 或 复制代码如下:var创建=新的日期(1983年7月21日01:15:00 / /);此方法用于自定义日…

MySQL支持的数据类型(列摘要)

MySQL支持的数据类型(列摘要)

支持,数据类型,摘要,电脑软件,MySQL,1。数值类型 MySQL支持所有标准的SQL的各种数值,包括严格的数据类型(整数、小数、smallint、数值),和近似数值数据类型(float,房、双精度),并在此基础上,我们向他们。 扩展增加了3个不同长度的字段,MEDIUMINT,和b…

提高页面加载速度的html方法

提高页面加载速度的html方法

方法,页面加载,速度,电脑软件,html,(1)减少HTTP请求(合并资源文件并使用图片精灵); (2)将CSS放在头上,并将Javascript放在正文标签的尾部。 (3)定义图片的宽度和高度; (4)定义字符集; (5)避免空src和href属性, 这是用HTML编写的。 触发 js是用这种方式定义的…

使用AJAX返回JSON的yii2实施

使用AJAX返回JSON的yii2实施

电脑软件,AJAX,JSON,本文阐述了实施yii2使用Ajax返回JSON。分享给您参考,如下: 公共功能actionajax() { 如果(isset(Yii::应用程序->请求->美元后(测试))){ $ajax工作!; 您的查询内容在这里 其他{ } $Ajax失败; 您的查询内容在这里 } 返回 返回一助理 JSON…

如何在WPS中添加下划线或下划线的W

如何在WPS中添加下划线或下划线的W

下划线,文本,如何在,电脑软件,WPS,在普通办公室,我们经常需要抄写或划线。许多人可能还不知道具体的操作方法。这里有一个小的WPS编辑方法,希望对你有所帮助。 WPS添加下划线或下划线方法: 首先,输入文本,然后单击菜单栏-插入-形状,选择直线。 …

一个人的寂寞感伤表达签名签名

一个人的寂寞感伤表达签名签名

感伤,寂寞,电脑软件,很多人都会有寂寞的时候,那么如何用签名表达孤独的心情呢下面,请欣赏签名萧边编译你表达一个人的寂寞。 表达某人的孤独签名推荐 1)你是孤独的,你是孤独的,所以你来到我身边。 2)当一个女人仰望天空时,她不想寻找任何东西,她…

mysql单文件存储删除数据文件容量

mysql单文件存储删除数据文件容量

容量,删除,文件存储,数据文件,解决方案,一个MySQL错误:InnoDB ibdata1不会收缩后被删除的数据 问题描述 当InnoDB引擎使用一个单独的文件存储在数据库中的数据被删除,文件的大小不会改变,这意味着该文件会越来越大。即使它被删除,它也不会允许…

PS如何设计巧克力糖果包装袋

PS如何设计巧克力糖果包装袋

包装袋,电脑软件,PS,有时在你的照片上添加一些装饰品更为精致,在这里我们教你做简单的糖果,既漂亮又可爱。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1,打开ps,创建新文件,创建新层,使用钢笔工具绘制图片的…

flexChrome浏览器调试空白解决方案

flexChrome浏览器调试空白解决方案

浏览器,解决方案,调试,空白,电脑软件,flex 4在Chrome调试中,空白,因为谷歌有默认的Flash播放器,只要默认播放器左禁用,新安装的插件,OK,只要在浏览器地址栏,键入:Chrome:Flash播放器, 会看到两个文件,点击查看详细信息,Chrome关闭后就OK了。…

PS图象处理软件快速添加水彩效果的

PS图象处理软件快速添加水彩效果的

边界,图象,处理软件,效果,快速,本教程使用PS图象处理软件快速添加水彩效果的边框图片,希望网友们喜欢它! 原始图: 图1 设计素描 uff1a 图2 第一步:开源、复制图层、矩形框,选择比原来更小的框,选择并按Q输入快速掩码: 图3 第二步:滤波-失真-…