问题描述
我有以下直接在sql控制台中运行的sql语句,但是我需要在Laravel Migration上进行修改。
短篇小说,我试图替换的列A的当前值 在tableB的columnB中具有对应值ID的tableA。
表结构如下:
tableA:
id: int(11)
columnA: varchar(191)
tableB:
id: int(11)
columnB: varchar(191)
UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA
我当时以为它是一个原始语句:
DB::raw(UPDATE tableA INNER JOIN tableB ON tableA.columnA = tableB.columnB SET tableA.columnA=tableB.id WHERE tableB.columnB = tableA.columnA);
现在我正在创建Laravel迁移,当我尝试运行迁移时,什么也没发生。
解决方法
尝试使用DB::statement
代替DB::raw
,第二个查询将不运行查询。