如何使用bookshelf.js编写条件更新查询?

yb3bgrhw  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(451)

我有一个mysql查询,它可以同时更新多个记录

UPDATE Settings
SET value = (case when property_Name = 'p1' then 'updated p1'
                     when property_Name = 'p2' then 'updated p2'
                     when property_Name = 'p3' then 'updated p3'
                end)
WHERE property_Name in ('p1', 'p2', 'p3') AND vendor_Id = 5;

如何使用bookshelf.js/knex在updatequery中编写case?
一种方法是用

knex.raw('UPDATE Settings
    SET value = (case when property_Name = 'p1' then 'updated p1'
                         when property_Name = 'p2' then 'updated p2'
                         when property_Name = 'p3' then 'updated p3'
                    end)
    WHERE property_Name in ('p1', 'p2', 'p3') AND vendor_Id = 5;');

有没有其他方法可以使用bookshelf.js(避免knex.raw())编写查询?

7rtdyuoh

7rtdyuoh1#

我不知道如何避免knex,但你不需要案例陈述。

knex.raw('UPDATE Settings
    SET value = CONCAT('updated ',property_Name)
    WHERE property_Name in ('p1', 'p2', 'p3') AND vendor_Id = 5;');

相关问题