AnswerBun.com

I need to set the 'OR' condtion for last where clause but it is setting as AND how can change in magento 2.3

Magento Asked by Sabareesh on December 13, 2020

SQL need to change AND condtion to OR in below code

public function getOrders()
    {
        $po_number = "%"."A"."%";
        if (!($customerId = $this->_customerSession->getCustomerId())) {
            return false;
        }
        if (!$this->orders) {
            $this->orders = $this->getOrderCollectionFactory()->create($customerId)->addFieldToSelect(
                '*'
            )->addFieldToFilter(
                'status',
                ['in' => $this->_orderConfig->getVisibleOnFrontStatuses()]
            );
            $this->orders->getSelect()
            ->joinLeft(
                ["sop" => "amt_sales_order_payment"],
                'main_table.entity_id = sop.parent_id',
                ['po_number']
            )
            ->where('sop.po_number LIKE ?',$po_number);
            
            $this->orders->setOrder(
            'ext_order_id',
            'desc'
            );
            echo  $this->orders->getSelect()->__toString();
        }
        return $this->orders;
    }

I the po_number OR condtion need to apply how can i apply this.

Current Query

SELECT `main_table`.*, `sop`.`po_number` FROM `sales_order` AS `main_table` LEFT JOIN `sales_order_payment` AS `sop` ON main_table.entity_id = sop.parent_id WHERE (`main_table`.`customer_id` = '200') AND (`status` IN('canceled', 'closed', 'complete', 'fraud', 'holded', 'partially_shipped', 'payment_review', 'pending', 'processing', 'shipped')) AND (sop.po_number LIKE '%A%')

Expecting Query

SELECT `main_table`.*, `sop`.`po_number` FROM `sales_order` AS `main_table` LEFT JOIN `sales_order_payment` AS `sop` ON main_table.entity_id = sop.parent_id WHERE (`main_table`.`customer_id` = '200') AND (`status` IN('canceled', 'closed', 'complete', 'fraud', 'holded', 'partially_shipped', 'payment_review', 'pending', 'processing', 'shipped')) OR (sop.po_number LIKE '%A%')

One Answer

try replacing ->where('sop.po_number LIKE ?',$po_number); with ->orWhere('sop.po_number LIKE ?',$po_number);

Correct answer by Marius on December 13, 2020

Add your own answers!

Related Questions

How to show downloadable links in a block?

0  Asked on January 16, 2021 by kamzata

     

Magento tax_class_id not importing

1  Asked on January 15, 2021 by sushivam

     

How to add firebase cdn’s in magento2?

0  Asked on January 15, 2021 by usama-sohail

   

Paypal log error

1  Asked on January 14, 2021 by fja3omega

     

Enable Dynamic price in bundle product

1  Asked on January 9, 2021 by miguel-angel-espinosa-garca

         

Magento 2 hidden products

1  Asked on January 6, 2021 by ramesh-kr

         

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP