我目前正在获取查询结果并将其添加到新表中。目前,它只是在每次加载时添加结果。
如果payment_issue
表中已经存在user_id,如何避免添加结果?
$results = $wpdb->get_results( "SELECT s.id, s.status FROM subscriptions as s LEFT JOIN subscriptionlog as l ON s.id=l.subscription_id WHERE l.event LIKE 'payment_error_mode_triggered %' AND l.date >= 1514764800 AND l.date <= 1569888000 and s.status = 'payment-issue'" );
foreach($results as $result){
$customer_id = $result->id;
$wpdb->insert("payment_issue", array(
"user_id" => $customer_id,
));
}
答案 0 :(得分:1)
在MySQL中,您可以使用on duplicate key update
避免插入新用户。
首先,您需要在payment_issue
上使用唯一索引或约束:
create unique index unq_payment_issue_id on payment_issue(id);
注意:您的问题未指定payment_issue
中“用户ID”列的名称,所以我只是在使用id
。
然后,您应该以{{1}}的形式插入。
第三,您应该这样说:
insert . . . select