データベーステーブルに特定のレコードが含まれているかどうかを確認する必要があるSQLクエリを実行しようとしています。存在する場合は、それ以外のレコードを追加しないでください。Magentoの既存のレコードをチェックするには?
私のテーブルのサンプルには、sample_id (auto-incremented), order_id, order_email_id, review_request, coupon_sent
のようなフィールドが含まれています。それは$ idを取得するにはorder_ids (71, 74, 126, 165)
を持つ4つのレコードを持っている、私はこのクエリを持って、
$to_date = date('Y-m-d H:i:s',strtotime('-3 days'));
$orders = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('status', 'complete')->addFieldToFilter('updated_at',array('to' => $to_date))->addAttributeToSelect('customer_email')->addAttributeToSelect('entity_id');
foreach($orders as $order)
{
$email = $order->getCustomerEmail();
$id = $order->getEntityId();
$sample = Mage::getModel('sample/sample')->getCollection()->addFieldToFilter('order_id', $id)->addFieldToSelect('order_id');
if($sample != null)
{echo "Record already exists";}
else
{
echo "Insert this record";
$sample->setOrderId($id);
}
}
マイ$id
は、理想的には、以下のクエリは、既存のレコードに対して(71, 74, 126, 165)
をチェックして、新しいを挿入する必要があり(71, 74, 126, 165, 166, 167)
が含まれていますもの(166, 167)
。私はクエリをエコーし、それは戻ってきましたが、それでもまだ理想的ではないはずのids 166と167の 'Record already exists'が返されます
Magentoのテーブルの既存のフィールドの値をチェックする方法はありますか?
何か助けていただければ幸いです。事前のおかげで
Magentoはなぜ自動スペースを作るのですか?その時点で '$ sample'に実際に何が入っていますか? – Wrikken
$ sampleは、私のクエリにしたがって 'sample'テーブルの 'order_id'フィールドの値を含んでいます。 – ivn