Yii2使用一条sql语句批量更新而非循环插入,如何实现?

Yii实现了如下的批量插入方式,如果是批量更新Yii2有没有相同的实现方式呢?


Yii::$app->db
    ->createCommand()
    ->batchInsert($table, $columns, $rows)
    ->execute();

批量更新是使用一条SQL语句实现批量更新,而非循环的更新的方式,e.g:

UPDATE order
    SET field = CASE order_no
        WHEN 1 THEN 'value'
        WHEN 2 THEN 'value'
        WHEN 3 THEN 'value'
    END
WHERE order_no IN (1,2,3)
12345678_0001
浏览 1280回答 4
4回答

潇潇雨雨

replace into

慕盖茨4494581

(Update t_user set name='aa' where 1=1)a union ALL (Update t_user set name='bb' where 1=2)a union ALL (Update t_user set name='cc' where 1=3)a union ALL 合并sql语句, 用循环字符串,组成一条SQL语句,一次执行,提高sql的效率。循环的效率,就用不了多少了比起sql

墨色风雨

Yii::$app->db->createCommand()->batchInsert($table, $columns, $rows)->execute();同意这个
打开App,查看更多内容
随时随地看视频慕课网APP