Mysql sql语句串了

anxin

两句mysql的where合并了

两句mysql的where合并了

程序代码或配置

        $order = new PaymentFreezeOrderModel();
        $unfreezeInfo = $order->where('cashier_id', '=', $this->cashierId)->where('order_type', '=', 'unfreeze')->where('shop_action_no', '=', $this->shopActionNo)->find();

        if ($unfreezeInfo) {
            // 解冻订单已存在直接返回
            return $this->query($unfreezeInfo['out_request_no']);
        } else {
            // 解冻订单不存在创建,解冻订单
            $freezeInfo = $order->where('out_request_no', '=', $this->requestNo)->fetchSql()->find();
            debug_log('解冻订单', $this->requestNo, $freezeInfo, 'alipay');
            if (!$freezeInfo) {
                throw new BusinessException($this->requestNo . '原冻结订单不存在');
            }
        }

重现问题的步骤

在第九行, 返回的sql是 和 第二行的sql条件合并了

SELECT * FROM `pay_freeze_order` WHERE  `cashier_id` = '1963'  AND `order_type` = 'unfreeze'  AND `shop_action_no` = 'R01T123456789'  AND `out_request_no` = '2025040314380719630001972009' LIMIT 1"

操作系统环境及workerman/webman等具体版本

用的都是最新的webman 5.1,SWOW驱动

93 3 0
3个回答

nitron

你这$order不是同一个对象么?所以where合并了

  • 暂无评论
smile1

PaymentFreezeOrderModel ::query()

  • 暂无评论
Jonas

你可以看下where的返回参数

  • 暂无评论
×
🔝