UPDATE newhouse_clicks
SET clicks = CASE id
WHEN 1 THEN 1000
WHEN 2 THEN 2000
WHEN 3 THEN 3000
END
WHERE id IN (1,2,3)

咱们详解一下这条sql语句的意思:
更新newhouse_clicks数据表中的clicks字段,当id=1是设置值为1000,当id=2时设置值为2000,当id=3时设置值为3000

更新多个字段代码:

UPDATE newhouse_clicks
SET clicks = CASE id
WHEN 1 THEN 1000
WHEN 2 THEN 2000
WHEN 3 THEN 3000
END,
type = CASE id
WHEN 1 THEN 1
WHEN 2 THEN 6
WHEN 3 THEN 8
END
WHERE id IN (1,2,3)

这条sql语句的含义就是更新newhouse_clicks数据表中的clicks字段,当id=1是设置值为1000,当id=2时设置值为2000,当id=3时设置值为3000,更新type字段,当id=1时更新为type字段为1,当id=2时更新type字段为6,当id=3时,更新type字段为8。

下面使用php 生成一条sql:

//查询数据库返回的数据格式
$newhouse_clicks = array(
=> 2,
=> 3,
=> 8,
=> 9,
);
$ids = implode(',', array_keys($newhouse_clicks ));
$sql = "UPDATE newhouse_clicks SET clicks = CASE id ";
foreach ( $newhouse_clicks as $key => $value) {
$sql .= sprintf("WHEN %d THEN %d ", $key, $value);
}
$sql .= "END WHERE id IN ($ids)";
echo $sql;

php mysql的储存过程 实现批量更新的更多相关文章

  1. mysql 设置允许重试,批量更新

    jdbc:mysql://ip:port/base?allowMultiQueries=true&autoReconnect=true 在mybatis中批量更新 需要在mysql的url上设 ...

  2. ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除

    我们都知道Entity Framework 中不能同时更新多条记录,但是一个老外写的扩展库可以实现此功能EntityFramework.Extended,但是如何是mysql数据库要怎么实现呢 首先实 ...

  3. mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  4. mysql的函数与储存过程与pymysql的配合使用

    现在mysql上定义一个函数,一个储存过程 函数: delimiter \\ CREATE FUNCTION f2 ( num2 INT, num1 INT ) RETURNS INT BEGIN D ...

  5. [转]MySQL批量更新死锁案例分析

    文章出处:http://blog.csdn.net/aesop_wubo/article/details/8286215 问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常, ...

  6. MySQL批量更新死锁案例分析--转载

    问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常,如下: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackE ...

  7. MySQL on duplicate key update 批量插入并更新已存在数据

    业务上经常存在一种现象,需要批量往表中插入多条数据,但在执行过程中,很可能因为唯一键冲突,而导致批量插入失败.因此需要事先判断哪些数据是重复的,哪些是新增的.比较常用的处理方法就是找出已存在的数据,并 ...

  8. MYSQL 处理批量更新数据的一些经验。

    首先,我们需要了解下MYSQL CASE EXPRESSION 语法. 手册传送门:http://dev.mysql.com/doc/refman/5.7/en/control-flow-functi ...

  9. mysql语句:批量更新多条记录的不同值[转]

    mysql语句:批量更新多条记录的不同值 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 帮助 1 UPDATE mytable SET myfield = 'value' WHERE ...

随机推荐

  1. CVE-2017-7494复现 Samba远程代码执行

    Samba是在Linux和Unix系统上实现Smb协议的一个免费软件,由服务器及客户端程序构成,Samba服务对应的TCP端口有139.445等.Smb一般作为文件共享服务器,专门提供Linux与Wi ...

  2. 大文件上传组件webupload插件

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  3. GoCN每日新闻(2019-10-28)

    GoCN每日新闻(2019-10-28) 1. 理解和攻击Go DSA验证漏洞 https://paul.querna.org/articles/2019/10/24/dsa-verify-poc/2 ...

  4. 第09组 Alpha冲刺(3/6)

    队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 服务器网络请求,vu ...

  5. shell脚本获取传入参数的个数

    ts.sh #!/bin/bash echo $# 输出 [root@redhat6 ~]# ./ts.sh para1 [root@redhat6 ~]# ./ts.sh para1 para2 [ ...

  6. UDF——查找单元的相邻单元

    Fluent版本:Fluent 19.2 Visual Studio版本:Visual Studio 2013 测试文件及源码下载链接: https://pan.baidu.com/s/1AZ59hs ...

  7. NOIP 2013货车运输

    当然这题有很多做法,但是我看到没有人写DSU的很惊奇 按照之前做连双向边题的经验,这题可以用并查集维护联通 然后对于每个询问\(x,y\),考虑启发式合并 当两个点集\(x,y\)合并时,一些涉及到其 ...

  8. exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

      1.情景展示 Java 报错信息如下: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 2.原因分析 首先,这是越界异常,但不是数组越 ...

  9. tensorflow 2.0 的资料

    https://github.com/jtoy/awesome-tensorflow https://github.com/Amin-Tgz/awesome-tensorflow-2 https:// ...

  10. 解决:Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceMode

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Eric_K1m/article/deta ...