Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

có gì sai với truy vấn Magento này?

Vừa nâng cấp lên 1.9.2.2 cho trang web của một người bạn và gặp sự cố này, tôi đã đặt bản vá sau vào tệp,

[magento / app / code / core / Mage / CatalogRule / Model / Action / Index / Refresh.php]

Tôi không thể nói những hiệu ứng onflow có thể có và các bản cập nhật trong tương lai sẽ phải cẩn thận để không bỏ lỡ tính năng này nếu tất nhiên tệp này bị ghi đè, nhưng để bắt đầu, hãy thêm dòng:

'rules_hash'            => new Zend_Db_Expr('NULL'),

để làm cho câu lệnh select trông như sau:

$select = $this->_connection->select()
        ->from($indexSelect, array())
        ->joinInner(
            array(
                'dates' => $this->_connection->select()->union(
                    array(
                        new Zend_Db_Expr(
                            'SELECT ' . $this->_connection->getDateAddSql(
                                $this->_connection->fromUnixtime($time),
                                -1,
                                Varien_Db_Adapter_Interface::INTERVAL_DAY
                            ) . ' AS rule_date'
                        ),
                        new Zend_Db_Expr('SELECT ' . $this->_connection->fromUnixtime($time) . ' AS rule_date'),
                        new Zend_Db_Expr(
                            'SELECT ' . $this->_connection->getDateAddSql(
                                $this->_connection->fromUnixtime($time),
                                1,
                                Varien_Db_Adapter_Interface::INTERVAL_DAY
                            ) . ' AS rule_date'
                        ),
                    )
                )
            ),
            '1=1',
            array()
        )
        ->columns(
            array(
                'rule_product_price_id' => new Zend_Db_Expr('NULL'),
                'rule_date'             => 'dates.rule_date',
                'customer_group_id'     => 'customer_group_id',
                'product_id'            => 'product_id',
                'rule_price'            => 'MIN(rule_price)',
                'website_id'            => new Zend_Db_Expr($website->getId()),
                'latest_start_date'     => 'latest_start_date',
                'earliest_end_date'     => 'earliest_end_date',
                /**
                Added because rules_hash was created by some module and not handled properly,
                see http://stackoverflow.com/questions/19480415/whats-wrong-with-this-magento-query
                */
                'rules_hash'            => new Zend_Db_Expr('NULL'),
            )
        )
        ->where(new Zend_Db_Expr($this->_connection->getUnixTimestamp('dates.rule_date') . " >= from_time"))
        ->where(
            $this->_connection->getCheckSql(
                new Zend_Db_Expr('to_time = 0'),
                new Zend_Db_Expr(1),
                new Zend_Db_Expr($this->_connection->getUnixTimestamp('dates.rule_date') . " <= to_time")
            )
        )
        ->group(array('customer_group_id', 'product_id', 'dates.rule_date'));

    return $select;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Chuyển đổi số giây tương đối thành datetime?

  2. Quyền truy cập bị từ chối đối với 'user' @ 'localhost'

  3. Mysql Thủ tục được lưu trữ với Mảng chuỗi java

  4. Các giao dịch và bế tắc của Django DB

  5. MySql chọn số thấp hơn tiếp theo mà không sử dụng giới hạn