PHP批量更新 WHEN THEN

/**
     * Description: 拼装sql
     * User: 郭玉朝
     * CreateTime: 2018/8/24 下午3:21
     * @param $contents eg: array(
                               250(表id,当然你也可以换成其它字段,但是需要改动一下代码 => 需要更新的内容)
                                  )
     * @return string
     */
    private function packSql( $contents) {
        //获取所有的id
        $ids = "'";
        $ids .= implode("','",array_keys($contents));
        //拼接批量更新sql语句
        $sql = "UPDATE 表名 SET ";
        //合成sql语句
        $sql .= "`content` = CASE `id` ";
        foreach ($contents as $key => $value) {
            $sql .= sprintf("WHEN %s THEN %s ", "'".$key."'", "'" . $value . "'");
        }
        $sql .= "END";
        //拼接sql
        $sql .= " WHERE  `id` IN ({$ids}')";
        return $sql;
    }

先看where条件,当id在这个$ids 里面的查找出来,再看set,会根据条件查出来的数据去case 里面对比,满足的将val赋值给content,但是切记如果sql语句过于长会导致更新失败,所以请根据实际情况拆分contents的数据大小,分段更新。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,874评论 0 13
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,267评论 2 89
  • 今天有雨,温度比春天的温度冷一点。刚才下了一场大雨,雨水细细的,把植物上的的脏的东西洗干净了,还把植物滋润...
    lehmann_zhang阅读 235评论 2 3
  • 前不久一位做团购网站运营的朋友跟我聊天,说开始怀疑1元促销这种活动方式对团购网站用户是否真的有效。我这位朋友当时和...
    白崎阅读 1,742评论 6 23
  • 素染片竹新绿现,油伞半举君莫言。 且饮腰间一壶酒,落雪纷繁月影憧。 孤鹤独鸣妾行晚,伊人银衫...
    青丝眷烟阅读 182评论 0 1

友情链接更多精彩内容