ThinkPHP框架下的批量更新,其实也是mysql通用的批量更新。

更新单个字段:

    $Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表

    $sql = 'update 表名 set 更新字段 = case when 修改依赖条件 then 0 end where 全局限制条件;'

    //在status=1的情况下,当id=1的时候,更改name为chengxiaobai
    $sql = 'update user set name = case when id= 1 then chengxiaobai end where status = 1';

    $Model->execute($sql);

更新多个字段

    $Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表

    $sql = 'update 表名 set 更新字段 = case when 修改依赖条件 then 0 end where 全局限制条件;'

    //在status=1的情况下,当id=1的时候,更改name为chengxiaobai
    //                ,当id=1的时候,更改sex为boy

    $sql = 'update user set name = case when id= 1 then chengxiaobai end,
                            sex = case when id= 1 then boy end where status = 1';

    $Model->execute($sql);

本作品由 程小白 创作,采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可,可自由转载、引用但需署名作者且注明文章出处。
原文地址:https://www.chengxiaobai.cn/php/thinkphp-mysql-batch-update.html