我很难解决这个问题。尝试检查数据库记录并将其与新数据进行比较。并记录在DB中。如果有任何数据与新数据不匹配。然后delete()
来自数据库的旧数据。我尝试了几种方法来实现这一目标:
我尝试过whereRaw
$check = Plan::whereRaw("plan_name", "!=", $val->textContent)->first();
$check->delete();
正在查找不匹配的数据,但弹出错误。
SQLSTATE [42000]:语法错误或访问冲突:1064您有一个 您的SQL语法错误;检查与您的手册相对应的手册 MySQL服务器版本使用正确的语法,以在'plan_name限制附近使用 1'在第1行
我也尝试过where
$check = Plan::where('plan_name', '=', $val->textContent)->first();
if($check){
// do nothing;
} else {
$check->delete();
}
where
没有做任何事情。没有错误,但是如果数据不匹配,它也不会删除。
两种方法都不适合我。
答案 0 :(得分:0)
您只想删除不符合某些条件的数据。
这很简单,您不必获取数据。您可以简单地先执行where()
然后delete()
示例代码
Plan::where('plan_name', '!=', $val->textContent)->delete();