【问题标题】:Laravel - combining multiple queries to update two table's data using single queryLaravel - 组合多个查询以使用单个查询更新两个表的数据
【发布时间】:2016-08-27 02:19:11
【问题描述】:

在我的一个Laravel 项目中,我必须在一个函数的同一范围内更新两个表的数据。在第一次查询时,我正在尝试使用以下查询更新表的数据 -

        DB::table('parameters')
        ->where($where)
        ->update($data);

在第二个和第三个查询中,我添加和减去另一个表的两列 -

DB::table('categories')
            ->where(['id' => $data['category_id']])
            ->increment('parameters');

DB::table('categories')
            ->where(['id' => $previous_category_id])
            ->decrement('parameters');

一切正常。但是,现在我想在一次查询执行中完成所有这些操作。

【问题讨论】:

    标签: php mysql laravel query-builder


    【解决方案1】:

    据我了解,one 查询无法做到这一点。

    您对DB:table 外观所做的基本上是运行 MySQL UPDATE 语句,例如: UPDATE <table_name> SET <field_name>=<value> WHERE condition

    如您所见,一个 UPDATE 查询正好指向 一个 表,而不是更多。因此,要更新多个表,您需要运行多个 UPDATE 查询。

    【讨论】:

    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多