首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个delete查询修改为尽可能少的update查询?

将多个delete查询修改为尽可能少的update查询?
EN

Stack Overflow用户
提问于 2012-11-27 18:48:28
回答 1查看 60关注 0票数 0

我们目前有以下代码片段:

代码语言:javascript
复制
$this->db->where('id', $id)->delete($this->table);
$this->db->where('product_id', $id)->delete($this->clink);
$this->db->where('product_id', $id)->delete($this->tlink);

$variants = $this->db->select('id')->from($this->vlink)->where('product_id', $id)->get();
if ($variants->num_rows() !== 0) {

    //turns array(array('id' => 1), array('id' => 2)) into array(1,2)
    $variants = $variants->result_array();
    foreach ($variants as &$v) {
        $v = $v['id'];
    }

    $this->db->where('product_id', $id)->delete($this->vlink);
    $this->db->where_in('variant_id', $variants)->delete('cart_variant_values');
    $this->db->where_in('variant_id', $variants)->delete('cart_variant_images');
    $this->db->where_in('variant_id', $variants)->delete('cart_variant_documents');
}

代码语言:javascript
复制
delete from $this->table where id = $id
delete from $this->clink where product_id = $id
delete from $this->tlink where product_id = $id

$variants = select id from $this->vlink where product_id = $id //e.g. (1,2) 

delete from $this->vlink where product_id = $id
delete from cart_variant_values where variant_id in $variants
delete from cart_variant_images where variant_id in $variants
delete from cart_variant_documents where variant_id in $variants

让它有相同数量的查询,但我希望作为更新而不是删除,我可以将其缩减为更少的查询?

EN

回答 1

Stack Overflow用户

发布于 2012-11-27 19:59:37

如果您担心delete查询的数量,您可以使用多表delete查询,通过该查询可以将其减少为单个查询

DELETE Syntax

您也可以在UPDATE中实现多个表查询

UPDATE Syntax

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13582552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档